首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab-Java MD5给出不正确的散列

Matlab-Java MD5给出不正确的散列
EN

Stack Overflow用户
提问于 2016-02-04 19:10:42
回答 2查看 139关注 0票数 0

我正在尝试获取char数组的md5散列。下面是我的密码。

代码语言:javascript
复制
data = unicode2native(data, 'UTF-8');
K = java.security.MessageDigest.getInstance('MD5');
md5 = reshape(dec2hex(typecast(K.digest(data), 'UINT8')), 1, 32);

维基百科列出了字符串的一些示例哈希值。例如,输入“快速褐狐跳过懒惰的狗”应该会产生一个9e107d9d372bb6826bd81d3542a419d6,的md5哈希,但是我的实现给出了下面的917932b86d134a1de0dd7b62b8d52496,它显然不匹配。

我不太清楚问题在哪里,但可能与第一行的字符转换有关。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-04 19:20:35

不,这是它的改变:

代码语言:javascript
复制
s = unicode2native('The quick brown fox jumps over the lazy dog','UTF-8');
K = java.security.MessageDigest.getInstance('MD5');
out = dec2hex(typecast(K.digest(s),'uint8'))

9E
10
7D
9D
37
2B
B6
82
6B
D8
1D
35
42
A4
19
D6

正确的重塑:

代码语言:javascript
复制
reshape(out',1,[])
票数 4
EN

Stack Overflow用户

发布于 2016-02-04 19:20:19

问题在于您使用reshape,删除它,您将能够识别哈希。

代码语言:javascript
复制
data='The quick brown fox jumps over the lazy dog'
data2 = unicode2native(data, 'ASC-II');
K = java.security.MessageDigest.getInstance('MD5');
md5 = dec2hex(typecast(K.digest(data2), 'UINT8')).';
md5 = md5(:).'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35209554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档