Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中获得类似js-sha1库的双哈希结果#_C#_Hash_Double_Sha1 - Fatal编程技术网

C# 在c中获得类似js-sha1库的双哈希结果#

C# 在c中获得类似js-sha1库的双哈希结果#,c#,hash,double,sha1,C#,Hash,Double,Sha1,我尝试用SHA1算法对一个double(1529480427715.5532)进行散列,我在c#中有这个散列: 以字符串格式使用:“3e8f41233f90a85f9963afaa571ba76afb8bb08d” 双格式使用:“c880857c399c7b9cc9c6395197e700543c400b17” 但事实上,我想得到这个散列“da39a3ee5e6b4bb0d3255bfef95601890afd80709”,就像我在使用库时一样。给定要从float64转换到Uint8arra

我尝试用SHA1算法对一个double(1529480427715.5532)进行散列,我在c#中有这个散列:

  • 以字符串格式使用:“3e8f41233f90a85f9963afaa571ba76afb8bb08d”
  • 双格式使用:“c880857c399c7b9cc9c6395197e700543c400b17”
但事实上,我想得到这个散列“da39a3ee5e6b4bb0d3255bfef95601890afd80709”,就像我在使用库时一样。

给定要从
float64
转换到
Uint8array
的代码(即C#中的
double
),您可以:

// c880857c399c7b9cc9c6395197e700543c400b17
var hash = sha1(convertTypedArray(new Float64Array([1529480427715.5532]), Uint8Array));
甚至更短,不使用该链接,因为
sha1
接受
ArrayBuffer
作为参数:

var hash = sha1(new Float64Array([1529480427715.5532]).buffer);
请注意,
sha1
只接受某些类型的输入,
number
不是其中之一

从库的开始,似乎支持字符串、
Array
Uint8Array
ArrayBuffer

正如@Freggar所写

// da39a3ee5e6b4b0d3255bfef95601890afd80709
var hash = sha1('');
并且,使用字符串:

// 3e8f41233f90a85f9963afaa571ba76afb8bb08d
var hash = sha1('1529480427715.5532');
给定要从C#中的
float64
(即
double
)转换为
Uint8array
)的代码,您可以:

// c880857c399c7b9cc9c6395197e700543c400b17
var hash = sha1(convertTypedArray(new Float64Array([1529480427715.5532]), Uint8Array));
甚至更短,不使用该链接,因为
sha1
接受
ArrayBuffer
作为参数:

var hash = sha1(new Float64Array([1529480427715.5532]).buffer);
请注意,
sha1
只接受某些类型的输入,
number
不是其中之一

从库的开始,似乎支持字符串、
Array
Uint8Array
ArrayBuffer

正如@Freggar所写

// da39a3ee5e6b4b0d3255bfef95601890afd80709
var hash = sha1('');
并且,使用字符串:

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

js-sha1中的散列“da39a3e…”是空字符串/空数组的散列。你确定你想要那个散列吗?在我看来,你没有正确地从javascript端散列你的double。但是你为什么一开始就想把一个双份的?double确实有精度错误,所以我想知道我在上面生成的一些代码是什么用例。我见过上面提到的js库生成它。您可以通过使用该库(js-sha1)发布您使用的代码来重新生成它。正如@xanatos js-sha1所提到的,它不支持数字,您必须首先将其转换为字符串或字节数组……js-sha1中的散列“da39a3e…”是空字符串/空数组的散列。你确定你想要那个散列吗?在我看来,你没有正确地从javascript端散列你的double。但是你为什么一开始就想把一个双份的?double确实有精度错误,所以我想知道我在上面生成的一些代码是什么用例。我见过上面提到的js库生成它。您可以通过使用该库(js-sha1)发布您使用的代码来重新生成它。正如@xanatos js-sha1所提到的,它不支持数字,您必须首先将其转换为字符串或字节数组。。。。