nanoFramework.System.IO.Hashing 1.0.3

前缀已保留
dotnet add package nanoFramework.System.IO.Hashing --version 1.0.3                
NuGet\Install-Package nanoFramework.System.IO.Hashing -Version 1.0.3                
此命令旨在在Visual Studio的包管理器控制台中使用,因为它使用NuGet模块的Install-Package版本。
<PackageReference Include="nanoFramework.System.IO.Hashing" Version="1.0.3" />                
对于支持PackageReference的项目,将此XML节点复制到项目文件中以引用该包。
paket add nanoFramework.System.IO.Hashing --version 1.0.3                
#r "nuget: nanoFramework.System.IO.Hashing, 1.0.3"                
#r指令可用于F#交互式和Polyglot笔记本。将此复制到交互式工具或脚本的源代码中,以引用该包。
// Install nanoFramework.System.IO.Hashing as a Cake Addin
#addin nuget:?package=nanoFramework.System.IO.Hashing&version=1.0.3

// Install nanoFramework.System.IO.Hashing as a Cake Tool
#tool nuget:?package=nanoFramework.System.IO.Hashing&version=1.0.3                

Quality Gate Status Reliability Rating NuGet #yourfirstpr Discord

nanoFramework logo


欢迎使用.NET nanoFramework System.IO.Hashing库存储库

此存储库包含nanoFramework System.IO.Hashing类库。

构建状态

组件 构建状态 NuGet包
System.IO.Hashing Build Status NuGet

System.IO.Hashing使用凭据

CRC32示例

此实现以Little Endian字节顺序生成答案,因此CRC残差关系(CRC(message concat CRC(message))是一个固定值)。对于CRC-32,此稳定的输出是字节序列{ 0x1C, 0xDF, 0x44, 0x21 },即0x2144DF1C的小端表示。

[!警告] 存在多个不兼容的32位循环冗余校验(CRC)算法定义。在与另一个系统交互时,请确保使用相同的定义。此实现所使用的定义与ITU-T I.363.5中描述的循环冗余校验不兼容。

计算字节数组的CRC32

var testData = new byte[] { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x26, 0x39, 0xF4, 0xCB };

Crc32 crc32 = new Crc32();
crc32.Append(testData);

ConsoleWriteline($"CRC32 for test data is: {crc32.GetCurrentHashAsUInt32()}");

可以使用替代的(静态)API代替。


var testData = new byte[] { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x26, 0x39, 0xF4, 0xCB };

var computedHash = Crc32.HashToUInt32(testData)

ConsoleWriteline($"CRC32 for test data is: {computedHash}");
计算多个数据块的CRC32

var testData1 = new byte[] { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x26, 0x39, 0xF4, 0xCB };
var testData2 = new byte[] { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xD9, 0xC6, 0x0B, 0x34 },

Crc32 crc32 = new Crc32();
crc32.Append(testData1);
crc32.Append(testData2);

ConsoleWriteline($"CRC32 for test data is: {crc32.GetCurrentHashAsUInt32()}");

如果需要重新使用Crc32对象,可以通过调用Reset()方法重置哈希计算器。

计算字符串的CRC32

这可以通过提取字符串的字节表示形式轻松实现。请注意,这需要添加对nanoFramework.System.Text的引用。

var computedHash = Crc32.HashToUInt32(Encoding.UTF8.GetBytes("The quick brown fox jumps over the lazy dog"))

ConsoleWriteline($"CRC32 for the string is: {computedHash}");

反馈和文档

有关文档、反馈、问题以及了解如何贡献力量,请参阅主仓库

加入我们的Discord社区这里

鸣谢

可以在此处找到为本项目做出贡献者的列表:CONTRIBUTORS

许可

nanoFramework类库根据MIT许可协议许可。

行为准则

本项目已采用贡献者保护协定的行为准则,以阐明社区中期望的行为。更多信息请参阅.NET基金会行为准则

.NET基金会

本项目由.NET基金会支持。

产品 兼容和额外的计算目标框架版本。
.NET Framework net是兼容的。
兼容目标框架
包含目标框架(在包中)
有关更多信息,请参阅目标框架.NET Standard

NuGet包

此包未被任何NuGet包使用。

GitHub仓库

此包未被任何流行的GitHub仓库使用。

版本 下载 最后更新
1.0.3 272 11/9/2023
1.0.2 112 10/30/2023