c# - 在 c# 中获得类似于 js-sha1 库的双哈希结果
问题描述
我尝试使用 SHA1 算法对双精度(1529480427715.5532)进行哈希处理,并且我在 c# 中有这个哈希:
- 以字符串格式使用:“3e8f41233f90a85f9963afaa571ba76afb8bb08d”
- 以双重格式使用:“c880857c399c7b9cc9c6395197e700543c400b17”
但实际上我想得到这个哈希“da39a3ee5e6b4b0d3255bfef95601890afd80709”,就像我使用js-sha1库时一样。
解决方案
鉴于此代码从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
, 。Uint8Array
ArrayBuffer
正如@Freggar 所写,
// da39a3ee5e6b4b0d3255bfef95601890afd80709
var hash = sha1('');
并且,使用字符串:
// 3e8f41233f90a85f9963afaa571ba76afb8bb08d
var hash = sha1('1529480427715.5532');
推荐阅读
- python - 在 Keras 中使用 RMSSE 作为损失函数
- java - 如何在 Android 11 中列出特定目录中的媒体文件?
- react-native - 如何呈现 SectionList Header?
- python - 程序应该产生一个输出值
- python - ox.stats.basic_stats 在 ox.graph.graph_from_place 更改 clean_periphery 时出错
- orocrm - Oro Commerce 页面组件
- python - 如何解决输出错误(最大子数组问题)?
- ios - 从 UINavigationController 中的第一个控制器返回
- html - 使用带有水平溢出的 KaTeX 时避免垂直溢出
- python - 我想在图形中制作闪烁的点作为程序