问题标签 [message-digest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java MessageDigest MD5 未返回预期结果
我感到非常无聊,所以我正在制作一个实验性的蛮力。但是,我在使用 MD5 时遇到了一些问题。我得到两个非常不同的输出,
第一个是有效的 is dd
,第二个是无效的,即使我删除了前导连字符。
我正在查看这个答案,我调整了我必须解决的主要问题,但是我仍然得到无效的 MD5。
我的代码:
在上面,name()
只是获取"MD5"
并getCompare()
获取一个哈希值来比较它。
我的问题是,如何修复我的代码以确保所有 MD5 都有效?
java - SHA 256 从 Java 到 C#
我正在尝试为以下函数创建从 Java 到 C# 的等效代码:
对 sha.update(p);
线有什么建议吗?
java - messagedigest 对象在 java 中用作字段/静态变量时抛出 NoSuchAlgorithm
我可以在代码的 main() 方法中将 MessageDigest 作为局部变量调用,但是每当我尝试在类中创建 MessageDigest 的字段变量并尝试在构造函数中对其进行初始化时,它都会引发 NoSuchAlgorithm 异常。
我的直觉是我们不能像那样实例化 MessageDigest 对象。真的吗?
基本上,这就是我所做的。我想将其用作字段变量,而不是局部变量。
hash - OpenSSL: can output size of EVP_DigestFinal_ex be greater than the digest size?
OpenSSL EVP_DigestFinal_ex has the following documentation:
"EVP_DigestFinal_ex() retrieves the digest value from ctx and places it in md. If the s parameter is not NULL then the number of bytes of data written (i.e. the length of the digest) will be written to the integer at s, at most EVP_MAX_MD_SIZE bytes will be written."
Signature:
Are there any cases where the digest length will be greater than the output size of the digest yet smaller than EVP_MAX_MD_SIZE. i.e. for SHA-1 digest, I get an output which is greater than 20bytes?
java - sha1.ComputeHash(fileStream)
上面的java代码是关于“Sha1 MessageDigest”的,并且有一个限制数据大小的控件:
如果我使用 c# api,如何限制数据大小?更重要的是,我只知道:
java - 我正在比较 BufferedReader.readLine() 的返回值和一个字符串,但它不起作用
我所做的是,我创建了两个文件 - 一个(message.txt)有消息“hello!”,我创建了它的 Messagedigest 并将其存储在第二个文件(md.txt)中。现在我正在尝试创建一个程序,它同时接受消息及其 md,为消息创建一个新的 md 并比较 md 以检查消息是否被操纵。这是代码:
没有错误并且代码正在运行,当我在文件中操作消息时,它表明它被操作了。但即使它没有被操纵并且两个 mds 相同,它也表明消息被操纵了。
这是输出:
为什么这样?我在这里做错了什么?
openssl - 从 MD_CTX 打印内容
我试图了解散列函数的md_rand.c
工作原理。假设我声明了一个变量MD_CTX m
,并且我试图查看m
每个MD_Update
函数之后的内容。
但是,我总是printf
在每个MD_Update
. 我应该怎么做才能获得更新的值m
?
java - Java POS系统的多级密码加密
我开始使用 MD5 进行密码加密,但我意识到一旦数据库遭到破坏,可以使用十几种不同的工具轻松解密密码。
我想知道进行具有不同阶段的密码加密实现是否可行。
例如,我输入“123”之类的密码,然后它会像这样转换:MD5 然后传递 SHA 加密,然后传递另一个 MessageDigest。等等等等。这会增加密码被解密的安全性吗?这是给那里的安全人员的。
python - MD5 Python 实现
我希望了解有关散列算法的更多信息,特别是 Message Digest 5 算法。特别是在稍微更新的 Python 版本中(3+。)
我知道你可以做所有from hashlib import md5
事情,并且可以在网上找到它在 Python 中的实现。但是,我发现模仿原始 C 代码的最新版本仅适用于 Python 2.4.X 版本,并且还有一个 3.2 版本,它非常简洁,根本不是我想要的(http: //rosettacode.org/wiki/MD5/Implementation。)
hashlib
在花了几个小时从 JavaScript 转换到 Python 3.5 之后,无论我多么努力,我都无法做到这一点,生成的哈希值总是与模块本身的哈希值不同。谁能帮我吗?
编辑:这是我要转换的 JavaScript 实现: MD5Sum 算法如何工作? 此实现有效,我已使用 w3schools.com 拥有的在线工具对其进行了验证。
这是我当前的代码(仍然无法正常工作。)问题肯定出在按位运算中,主散列函数不是问题,因为我直接从有效的 JavaScript 版本复制和粘贴
java - SHA1 MessageDigest 和 CommonCrypto 更新得到不同的结果
我正在尝试从 VB.NET 重新创建 PasswordDeriveBytes 的实现,到目前为止,我已经在 iOS 目标 C 代码中实现了它,它给了我与 Java 实现不同的结果。
我们尝试重新创建 PasswordDeriveBytes 实现的原因是因为客户端服务器端正在使用它来加密/解密数据,并且根据我的搜索,PasswordDeriveBytes 使用过时的 PBKDF1。Java 实现正在返回预期的加密值,并且正在由服务器成功解密。但是从 iOS ObjC 实现返回的值是不正确的。
下面是构造函数的 Java 实现,取自这个答案:Java 和 C# 之间的加密差异
下面是构造函数的 Objective C 代码,使用这个库:https ://github.com/TakahikoKawasaki/nv-ios-digest
据我研究,hash.digest(input)
java的实现与Obj-C相同,[hash updateWith:firstToLastDigest length:(CC_LONG)strlen(firstToLastDigest)]; outputBuffer = [hash final];
但我得到不同的结果。
在这一点上,我对为什么它们获得不同的值没有其他想法,因此欢迎任何形式的指导或建议。