社区
Java SE
帖子详情
md5包含中文2次加密不一致
潍一
2015-10-28 03:39:00
前端提交表单过来,其中有一条数据是中文的,然后我把数据拼成一串之后进行加密,但是这次md5加密是错的。
后来我debug获取到拼接的字符串,然后在main方法中md5加密,加密就正确了。
表单提交过来的中文并没有乱码,但是如果我提交表单时不写中文数据,那么加密就是正确的!
请问谁有经历过吗?
...全文
183
2
打赏
收藏
md5包含中文2次加密不一致
前端提交表单过来,其中有一条数据是中文的,然后我把数据拼成一串之后进行加密,但是这次md5加密是错的。 后来我debug获取到拼接的字符串,然后在main方法中md5加密,加密就正确了。 表单提交过来的中文并没有乱码,但是如果我提交表单时不写中文数据,那么加密就是正确的! 请问谁有经历过吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
渭水飞熊
2015-10-28
打赏
举报
回复
肯定是编码的问题,在MD5加密前,把字符串getBytes("UTF-8")一下再加密,后台接收后也用UTF-8获取下就好了。
oO临时工Oo
2015-10-28
打赏
举报
回复
看中文有字符集有没问题。 在“正式流程”中和“”main“”方法中,分别debug。看两个字符串的字节码是不是一样的。
VB的
MD5
中文
加密
VB的
MD5
中文
加密
,是一个不错的
加密
方式,但是仅适用于自己内容
加密
判断使用,因为和JAVA等对汉字的编码格式不统一,所以汉字
加密
直接不能使用VB的
MD5
,但是内部
包含
了JS的
Md5
,如果必须使用和其它语言
一致
的
MD5
使,请使用WB控件,调用JS的
MD5
使用!
md5
16位 32位
加密
,支持大小写
MD5
信息摘要算法(英语:
MD5
Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整
一致
。本资源中
包含
md5
js和
md5
16位 32位
加密
调用方法,同时支持
加密
后大小写转换。
fastcoll伪造
MD5
值
MD5
是目前最热门的
加密
算法,我们通常用
MD5
值来验证文件的完整性。例如在一些比较正规的下载网站,通常会提供软件的
MD5
值,这样我们就可以对下载回来的文件用
MD5
校检软件(如HashX等)做一
次
MD5
校验,以确保我们获得的文件与该站点提供的文件为同一文件。但当两个不同文件的
MD5
值完全一样时,你还会信任
MD5
吗? 找出破解
MD5
加密
方法的专家是我国山东大学的王小云教授,这则新闻在以前的软件版块曾详细报道过。但之后
MD5
的破解一直没有进展,直到最近,国外的科学家研究出了新的
MD5
碰撞破解方法,可以让两个不同文件的
MD5
值完全一样,而之前我们一直认为一个文件的
MD5
值在世界上是独一无二的,这就像一个人克隆了你的指纹然后冒充你一样恐怖! 为了验证
MD5
值的独一无二性,我们来做一个简单的试验: 在桌面上新建一个文本文档,文件名为“test.txt”,内容为“OfficeBa”。然后将这个文本文档拖动到校验工具HashX中,点击左上角的“Hash File”按钮,得到其
MD5
值为051cb2917a5b70505e1687dee449c765,然后为文档中的“OfficeBa”加上双引号,保存后再通过HashX进行校检,发现
MD5
值变成了9ab117400993b70bc9945a9b15749d5d了。可见,一个极细微的变动都会导致文件的
MD5
值不同! 那么我们能让两个程序文件的
MD5
一致
,却又都能正常运行,并且可以做完全不同的事情么?答案是:“可以!”。要让两个不同文件的
MD5
值相同,可以通过一款名为fastcoll的小工具来完成我们同样以刚才的test.txt来做试验: -h [--help] 显示选项 -q [--quiet] 简化 -i [-ihv] arg 使用指定的初始值,默认是
md5
初始值 -p [-prefixfile] arg 使用给定的前缀计算初始值,仍然把数据复制到输出文件中(必须是个文件名) -o [--out] arg 指定输出文件名,此选项必须是最后一个参数,而且两个文件名必须同时指定 默认的是 -o msg1.bin msg2.bin 把解压出来的fastcoll_v1.0.0.5.exe与test.txt放在同一目录,然后在“命令提示符”中输入:“fastcoll_v1.0.0.5.exe -i test.txt -p test.txt -o cbi.exe cbi2.exe”并回车,在同目录中会生成名为cbi.exe和cbi2.exe文件,我们用HashX校验他们的
MD5
值,可以发现是完全一样的,但是在HashX中用“SHA-1”
加密
算法进行校验的时候,结果竟然是不同的(SHA-1
加密
算法生成的结果也是独一无二的)!可见这已经是完全不同的两个文件,但是他们的
MD5
值竟然完全相同。 如果黑客从网上下载一个工具,给其捆绑上木马,然后通过工具让其
MD5
值和原文件一样。那么当用户下载了文件后用
MD5
校验工具进行校验时就会发现带毒文件和原文件
MD5
值完全一样,就会放心地去运行,结果可想而知。所以,
MD5
加密
已经不再可信!
Java
加密
与解密的艺术
本书是Java安全领域的百科全书,密码学领域的权威经典,4大社区
一致
鼎力推荐。 全书
包含
3个部分,基础篇对Java企业级应用的安全知识、密码学核心知识、与Java
加密
相关的API和通过权限文件加强系统安全方面的知识进行了全面的介绍;实践篇不仅对电子邮件传输算法、消息摘要算法、对称
加密
算法、非对称
加密
算法、数字签名算法等现今流行的
加密
算法的原理进行了全面而深入的剖析,而且还结合翔实的范例说明了各种算法的具体应用场景;综合应用篇既细致地讲解了
加密
技术对数字证书和SSL/TLS协议的应用,又以示例的方式讲解了
加密
与解密技术在网络中的实际应用,极具实践指导性。 Java开发者将通过本书掌握密码学和Java
加密
与解密技术的所有细节;系统架构师将通过本书领悟构建安全企业级应用的要义;其他领域的安全工作者也能通过本书一窥
加密
与解密技术的精髓。 第一部分基础篇 第1章企业应用安全2 1.1 我们身边的安全问题2 1.2 拿什么来拯救你,我的应用3 1.3 捍卫企业应用安全的银弹8 1.4 为你的企业应用上把锁9 1.5 小结10 第2章企业应用安全的银弹—密码学11 2.1 密码学的发家史11 2.2 密码学定义、术语及其分类15 2.3 保密通信模型17 2.4 古典密码18 2.5 对称密码体制19 2.6 非对称密码体制26 2.7 散列函数28 2.8 数字签名29 2.9 密码学的未来30 2.10 小结32 第3章Java
加密
利器34 3.1 Java与密码学34 .3.2 java.security包详解37 3.3 javax.crypto包详解70 3.4 java.security.spec包和javax.crypto.spec包详解85 3.5 java.security.cert包详解91 3.6 javax.net.ssl包详解100 3.7 小结107 第4章他山之石,可以攻玉109 4.1 加固你的系统109 4.2
加密
组件Bouncy Castle 111 4.3 辅助工具Commons Codec 120 4.4 小结121 第二部分实践篇 第5章电子邮件传输算法—Base64 134 5.1 Base64算法的由来134 5.2 Base64算法的定义134 5.3 Base64算法与
加密
算法的关系135 5.4 实现原理136 5.5 模型分析137 5.6 Base64算法实现138 5.7 Url Base64算法实现147 5.8 应用举例151 5.9 小结153 第6章验证数据完整性—消息摘要算法155 6.1 消息摘要算法简述155 6.2 MD算法家族157 6.3 SHA算法家族167 6.4 MAC算法家族181 6.5 其他消息摘要算法195 6.6 循环冗余校验算法—CRC算法206 6.7 实例:文件校验209 6.8 小结211 第7章初等数据
加密
—对称
加密
算法213 7.1 对称
加密
算法简述213 7.2 数据
加密
标准—DES 214 7.3 三重DES—DESede 222 7.4 高级数据
加密
标准—AES 227 7.5 国际数据
加密
标准—IDEA 232 7.6 基于口令
加密
—PBE 236 7.7 实例:对称
加密
网络应用242 7.8 小结254 第8章高等数据
加密
—非对称
加密
算法256 8.1 非对称
加密
算法简述256 8.2 密钥交换算法—DH 258 8.3 典型非对称
加密
算法—RSA 269 8.4 常用非对称
加密
算法—ElGamal277 8.5 实例:非对称
加密
网络应用284 8.6 小结296 第9章带密钥的消息摘要算法—数字签名算法297 9.1 数字签名算法简述297 9.2 模型分析298 9.3 经典数字签名算法—RSA 299 9.4 数字签名标准算法—DSA 306 9.5 椭圆曲线数字签名算法—ECDSA 311 9.6 实例:带有数字签名的
加密
网络应用318 9.7 小结319 第三部分综合应用篇 第10章终极武器—数字证书332 10.1 数字证书详解332 10.2 模型分析335 10.3 证书管理337 10.4 证书使用351 10.5 应用举例360 10.6 小结360 第11章终极装备—安全协议362 11.1 安全协议简述362 11.2 模型分析364 11.3 单向认证服务369 11.4 双向认证服务381 11.5 应用举例387 11.6 小结387 第12章量体裁衣—为应用选择合适的装备389 12.1 实例:常规Web应用开发安全389 12.2 实例:IM应用开发安全399 12.3 实例:Web Service应用开发安全420 12.4 小结443 附录A Java 6支持的算法445 附录B Bouncy Castle支持的 算法447
cherySdk.jar
MD5
的作用是用于签名,它是一种哈希算法得出的值,可以证明一条已知的数据是否跟另一条数据完全
一致
也正是因为他是用于签名验证的,所以
MD5
除了
包含
原文的指纹信息之外就没有任何原文内容了所以说
MD5
本身并不是密文,它也不属于
加密
方式自然也不存在真正的“
MD5
”解密一说目前在网上搜到的“
MD5
解密”其实都是使用“彩虹库”这种哈希库来进行匹配的 作者:飞羽流星 链接:https://www.zhihu.com/question/266489855/answer/308735014 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Java SE
62,616
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章