标签: sha

在javascript中从Blob/File创建SHA-256哈希

我需要在浏览器内的文件(~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秒.我怎样才能改善这个?

javascript hash performance html5 sha

24
推荐指数
3
解决办法
1万
查看次数

生成SHA256/512哈希时,是否有最小的"安全"数据要哈希?

我听说在创建哈希时,如果使用小文件或数据量,结果哈希可能会更容易发生冲突.如果这是真的,是否应该使用最少的"安全"数据来确保不会发生这种情况?

我猜这个问题也可以表达为:

可以安全可靠地散列的最小数据量是多少?

hash checksum sha

23
推荐指数
1
解决办法
2万
查看次数

我何时应该使用SHA-1,何时应该使用SHA-2?

在我的c#应用程序中,我正在使用RSA签名文件,然后由上传的人上传到我公司的数据库中,在这里我必须选择SHA-1或SHA-2来计算哈希值.
与编程中的任何其他组件一样,我知道必须有一个"在这里使用"和"在那里使用"这两个组件.
那么,什么时候?那时呢?

编辑:
我的问题是:性能有什么不同?而不是关于安全性,因为我已经知道SHA-2比SHA-1更安全.
在此链接中,不同类型的SHA-2之间的比较注意何时使用SHA-512以及何时不使用SHA-512.我需要一个关于SHA-1和SHA-2的类似论点.

c# security rsa sha digital-signature

23
推荐指数
1
解决办法
3万
查看次数

使用随机盐改进密码哈希

我正在创建一个网站,我正在尝试决定如何加密用户密码以将它们存储在SQL数据库中.

我意识到使用简单的md5(密码)是非常不安全的.我正在考虑使用sha512(password.salt),我一直在研究生成有用盐的最佳方法.我阅读了很多文章,说明盐应该尽可能随机地添加熵到哈希,这看起来是个好主意.但:

  • 你需要将随机盐与哈希一起存储
  • 鉴于攻击者以某种方式访问​​了您的哈希密码(并试图将哈希值反转为纯文本),这意味着他可能会转储您的数据库,然后也可以访问您的随机盐

在数据库中哈希旁边的怪异外观值是不是很明显?如果攻击者可以使用哈希值访问salt,那么它更安全吗?

任何人都有该领域的专业知识?谢谢!

php mysql security hash sha

21
推荐指数
2
解决办法
2802
查看次数

如何找到Github文件的SHA blob

我正在使用此API更新我的repo上的文件,它要求我为要更新的文件提供有效的SHA blob:

http://developer.github.com/v3/repos/contents/

如何找到特定文件的SHA blob?我在测试帐户的testrepo中提供了什么,test.txt文件的SHA blob是什么?

https://github.com/testacc01/testrepo01

非常感谢!

git github sha github-api

21
推荐指数
3
解决办法
7017
查看次数

如何在 .NET 6 中正确计算 sha 512 哈希值

在 .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 控制器调用。

asp.net-mvc cryptography sha sha512 .net-6.0

20
推荐指数
2
解决办法
1万
查看次数

如何在命令行上检查我的SSL证书是SHA1还是SHA2

如何从命令行检查我的SSL证书是否使用SHA1或SHA2?

是的,我这类似于,但我需要一个cli工具,我想了解它是如何完成的.

ssl openssl sha1 sha sha256

18
推荐指数
2
解决办法
3万
查看次数

在Ruby中将唯一种子字符串转换为随机但确定的浮点值

从概念上讲,我在这方面遇到了困难.

基本上,我需要接受一些任意的唯一字符串,并能够将其转换为规范化的浮点值.输出浮点值的作用并不重要,只要相同的字符串输入始终导致相同的标准化浮点输出.

那么这是一个哈希算法吗?我熟悉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方法将任意字符串转换为随机但一致的浮点值?

ruby string floating-point md5 sha

17
推荐指数
2
解决办法
5484
查看次数

为什么两次压缩相同的内容会产生两个不同SHA1的文件?

我遇到了一个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会压缩你检查的任何文件,但拉链它们的动机就是保持它们的质量不受影响.

git ant zip gzip sha

17
推荐指数
3
解决办法
4704
查看次数

在x86中有加速SHA(SHA1/2/256/512)编码的任何指令吗?

例如,在x86中是指令集到硬件加速AES.但是在x86中是否有任何加速SHA(SHA1/2/256/512)编码的指令,以及在x86上编码SHA的紧固库是什么?

c c++ x86 cryptography sha

17
推荐指数
3
解决办法
7986
查看次数