首页 > 解决方案 > 在 c# 中获得类似于 js-sha1 库的双哈希结果

问题描述

我尝试使用 SHA1 算法对双精度(1529480427715.5532)进行哈希处理,并且我在 c# 中有这个哈希:

但实际上我想得到这个哈希“da39a3ee5e6b4b0d3255bfef95601890afd80709”,就像我使用js-sha1库时一样。

标签: c#hashdoublesha1

解决方案


鉴于代码从float64(即double在 C# 中)转换为Uint8array,您可以:

// c880857c399c7b9cc9c6395197e700543c400b17
var hash = sha1(convertTypedArray(new Float64Array([1529480427715.5532]), Uint8Array));

甚至更短,不使用该链接,因为sha1接受ArrayBuffer作为参数:

var hash = sha1(new Float64Array([1529480427715.5532]).buffer);

请注意,sha1它只接受某些类型的输入,number而不是其中之一。

从库的示例中,似乎支持字符串 , Array, 。Uint8ArrayArrayBuffer

正如@Freggar 所写,

// da39a3ee5e6b4b0d3255bfef95601890afd80709
var hash = sha1('');

并且,使用字符串:

// 3e8f41233f90a85f9963afaa571ba76afb8bb08d
var hash = sha1('1529480427715.5532');

推荐阅读