免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6200 | 回复: 6
打印 上一主题 下一主题

如何用MD5加密表中的某一字段 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-23 16:48 |只看该作者 |倒序浏览
比如需要存储password字段。

论坛徽章:
0
2 [报告]
发表于 2006-11-24 09:28 |只看该作者
select md5('口令串');

试试看,得到了什么?

论坛徽章:
0
3 [报告]
发表于 2006-11-24 09:58 |只看该作者
这样可以..最好还是在程序里产生..
因为md5 or sha1 都要做大量计算.

论坛徽章:
0
4 [报告]
发表于 2006-11-24 13:43 |只看该作者
不好意思,本人新手,还请诸位能否示例一下。
是在insert之前做MD5转换吗?怎么写啊?

论坛徽章:
0
5 [报告]
发表于 2006-11-25 09:26 |只看该作者
是在insert之前做MD5转换吗?怎么写啊?

md5()是一个PG提供的hash函数,用来提取给定消息的特征字。这个特征字是个16字节的无符号数,转换为32字节可打印的十六进制数显示,称为“消息摘要”。由于是提取了消息的特征,所以是很难从md5后的结果反向解码的。一般的做法是,将md5后的消息摘要存入数据库,在验证消息的正确性时,对输入的消息串做同样的md5运算,运算结果与存放在数据库中的消息摘要作比较,相同则OK。

至于写法,那是很普通的SQL语句,按上面说的过程自己研究一下吧。

论坛徽章:
0
6 [报告]
发表于 2006-11-27 13:37 |只看该作者
理解,pgsql中有crypt_md5吗?各位的意见是不是先转换再用sql语句存放数据库中。
我使用pam_pgsql.so进行pam认证。

论坛徽章:
0
7 [报告]
发表于 2006-12-03 10:55 |只看该作者
原帖由 rongy 于 2006-11-24 13:43 发表
不好意思,本人新手,还请诸位能否示例一下。
是在insert之前做MD5转换吗?怎么写啊?



netkiller 的意思是:
不要使用db 的加密功能,
而使用系统/你所用的编程语言/第三方程序库所提供的加密功能。

dbms 只存储经过加密后的密文,db只做存储,不做任何与加密有关的操作。

比如,你用php开发,可以先用php的md5() 函数对用户数据进行哈希运算后,只将得到的MD5哈希值存入db.

java 可用java自带的 信息摘要API处理。
其他的类似,如果其他语言没有相应的函数/API 那么可以通过google 的code搜索查找现成的你所用的程序语言实现md5的代码。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP