我需要在浏览器内的文件(~6MB)中创建一个SHA-256摘要.到目前为止,我设法做到的唯一方法是这样的:
var reader = new FileReader();
reader.onload = function() {
// this gets read of the mime-type data header
var actual_contents = reader.result.slice(reader.result.indexOf(',') + 1);
var what_i_need = new jsSHA(actual_contents, "B64").getHash("SHA-256", "HEX");
}
reader.readAsDataURL(some_file);
Run Code Online (Sandbox Code Playgroud)
虽然这可以正常工作,但问题是它非常慢.6MB文件需要2-3秒.我怎样才能改善这个?
我听说在创建哈希时,如果使用小文件或数据量,结果哈希可能会更容易发生冲突.如果这是真的,是否应该使用最少的"安全"数据来确保不会发生这种情况?
我猜这个问题也可以表达为:
可以安全可靠地散列的最小数据量是多少?
在我的c#应用程序中,我正在使用RSA签名文件,然后由上传的人上传到我公司的数据库中,在这里我必须选择SHA-1或SHA-2来计算哈希值.
与编程中的任何其他组件一样,我知道必须有一个"在这里使用"和"在那里使用"这两个组件.
那么,什么时候?那时呢?
编辑:
我的问题是:性能有什么不同?而不是关于安全性,因为我已经知道SHA-2比SHA-1更安全.
在此链接中,不同类型的SHA-2之间的比较注意何时使用SHA-512以及何时不使用SHA-512.我需要一个关于SHA-1和SHA-2的类似论点.
我正在创建一个网站,我正在尝试决定如何加密用户密码以将它们存储在SQL数据库中.
我意识到使用简单的md5(密码)是非常不安全的.我正在考虑使用sha512(password.salt),我一直在研究生成有用盐的最佳方法.我阅读了很多文章,说明盐应该尽可能随机地添加熵到哈希,这看起来是个好主意.但:
在数据库中哈希旁边的怪异外观值是不是很明显?如果攻击者可以使用哈希值访问salt,那么它更安全吗?
任何人都有该领域的专业知识?谢谢!
我正在使用此API更新我的repo上的文件,它要求我为要更新的文件提供有效的SHA blob:
http://developer.github.com/v3/repos/contents/
如何找到特定文件的SHA blob?我在测试帐户的testrepo中提供了什么,test.txt文件的SHA blob是什么?
https://github.com/testacc01/testrepo01
非常感谢!
在 .NET 6 代码中,如何对 C# 中的字符串进行 SHA512?
var data = Encoding.UTF8.GetBytes("key");
byte[] hash;
using (SHA512 shaM = new SHA512Managed())
hash = shaM.ComputeHash(data);
Run Code Online (Sandbox Code Playgroud)
引发警告
Warning SYSLIB0021 'SHA512Managed' is obsolete:
'Derived cryptographic types are obsolete.
Use the Create method on the base type instead.'
Run Code Online (Sandbox Code Playgroud)
Visual Studio 2022 不为此提供代码更改。如何在 .NET 6 中用正确的代码替换此代码?
代码从 ASP.NET MVC 控制器调用。
如何从命令行检查我的SSL证书是否使用SHA1或SHA2?
是的,我这类似于此,但我需要一个cli工具,我想了解它是如何完成的.
从概念上讲,我在这方面遇到了困难.
基本上,我需要接受一些任意的唯一字符串,并能够将其转换为规范化的浮点值.输出浮点值的作用并不重要,只要相同的字符串输入始终导致相同的标准化浮点输出.
那么这是一个哈希算法吗?我熟悉SHA1或MD5,这看起来类似于密码哈希,其结果与正确的密码相同.但我相信这些方法会输出字符串.而我没有得到的是如何将SHA1或MD5的结果转换为一致的浮点值.
# Goal
def string_to_float(seed_string)
# ...
end
string_to_float('abc-123') #=> 0.15789
string_to_float('abc-123') #=> 0.15789
string_to_float('def-456') #=> 0.57654
string_to_float('def-456') #=> 0.57654
Run Code Online (Sandbox Code Playgroud)
那么我可以采用什么样的Ruby方法将任意字符串转换为随机但一致的浮点值?
我遇到了一个git和zip文件的奇怪问题.我的构建脚本需要一堆文档html页面并将它们压缩成docs.zip然后我将此文件检入git.
我遇到的问题是每次我重新运行构建脚本并获得一个新的zip文件时,新的zip文件具有与上一次运行不同的SHA1.我的构建脚本正在调用ant zip任务.然而,如果我将同一目录压缩两次,那么从Mac OS X shell手动调用macOSX zip会给我一个不同的sha1.
运行1:
zip foo.zip *
openssl sha1 foo.zip
rm foo.zip
Run Code Online (Sandbox Code Playgroud)
运行2:
zip foo.zip *
openssl sha1 foo.zip
Run Code Online (Sandbox Code Playgroud)
运行1和run2给出不同的SHA1,即使内容在运行之间没有变化.在这两种情况下,zip都会打印出完全相同的压缩文件,但并不表示任何特定于操作系统的文件(如.DS_Store)都包含在zip文件中.
zip算法是否具有确定性?如果在相同的内容上运行它会产生完全相同的位吗?如果不是为什么不呢?
我有哪些选择以确定的方式压缩文件?压缩文件中有数千个,我不希望这些文件发生太大变化.我知道git会压缩你检查的任何文件,但拉链它们的动机就是保持它们的质量不受影响.
例如,在x86中是指令集到硬件加速AES.但是在x86中是否有任何加速SHA(SHA1/2/256/512)编码的指令,以及在x86上编码SHA的紧固库是什么?