nanoFramework.System.Security.Cryptography 1.0.14

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

// Install nanoFramework.System.Security.Cryptography as a Cake Tool
#tool nuget:?package=nanoFramework.System.Security.Cryptography&version=1.0.14                

Quality Gate Status Reliability Rating NuGet #yourfirstpr Discord

nanoFramework logo


欢迎访问 .NET nanoFramework System.Security.Cryptography 库仓库

此仓库包含 nanoFramework System.Security.Cryptography 类库。

构建状态

组件 构建状态 NuGet 包
System.Security.Cryptography Build Status NuGet

System.Security.Cryptography 使用

此库将 Mbed TLS 提供的等效实现引入了 .NET nanoFramework C# 应用程序。目标代码部署的固件图像必须启用此命名空间。

HMAC SHA256

此类通过使用 SHA256 哈希函数计算基于哈希的消息认证码 (HMAC)。

在 IoT 环境中,此类的典型用法是计算连接到 Azure IoT Hub 的 哈希签名。例如

如果具有 _S_hared _A_ccess _K_ey 并希望编码特定 Uri,则执行此操作的代码片段如下

var hmacsha256 = new HMACSHA256(Convert.FromBase64String(sharedAccessKey));

byte[] hash = hmacsha256.ComputeHash(Encoding.UTF8.GetBytes(encodedUri + "\n" + expiry));

string sig = Convert.ToBase64String(hash);

AES

高级加密标准 (AES)

AES 是Rijndael分组密码的一个变体,具有不同的密钥和块大小。对于AES,NIST从Rijndael家族中选择了三个成员,每个块大小为128位,但密钥长度分别为128、192和256位。

当前版本支持ECB和CBC模式。以下示例演示了如何使用AES类加密和解密样本数据。

请注意,输入数据必须是16位的倍数,否则将抛出异常。短于这个长度应该用零填充。

ECB-AES128
//Sample Usage
string clearText = "Nanoframework";
byte[] clearTextByteArray = Encoding.UTF8.GetBytes(clearText);
// please note the array size: 16 bytes
byte[] clearTextByteArrayWithPadding = new byte[16];
Array.Copy(clearTextByteArray, 0, clearTextByteArrayWithPadding, 0, clearTextByteArray.Length);

// Create a new instance of the Aes
AES aes = new AES(CipherMode.ECB);
aes.Key = new byte[16] { 198, 49, 248, 31, 20, 7, 226, 232, 208, 100, 15, 11, 2, 32, 213, 243 };

// Encrypt the bytes to a string.
var encryptedData = aes.Encrypt(clearTextByteArrayWithPadding);
string encryptedText = Encoding.UTF8.GetString(encryptedData);
Debug.WriteLine(encryptedText);

// Decrypt the bytes to a string.
var decryptedByteArray = aes.Decrypt(encryptedData);
string decryptedText = Encoding.UTF8.GetString(decryptedByteArray);
Debug.WriteLine(decryptedText);
CBC-AES128
//Sample Usage
byte[] inputBlockCbc1 = new byte[] { 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a };

// Create a new instance of the Aes class for CBC
Aes aes = new(CipherMode.CBC);
aes.Key = new byte[] { 198, 49, 248, 31, 20, 7, 226, 232, 208, 100, 15, 11, 2, 32, 213, 243 };;
aes.IV = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };

// Encrypt the bytes
var encryptedData = aes.Encrypt(inputBlockCbc1);
string encryptedText = Encoding.UTF8.GetString(encryptedData);
Debug.WriteLine(encryptedText);

// Decrypt the bytes to a string.
var decryptedByteArray = aes.Decrypt(encryptedData);
string decryptedText = Encoding.UTF8.GetString(decryptedByteArray);
Debug.WriteLine(decryptedText);

反馈和文档

有关反馈、问题和如何贡献的说明,请参阅主仓库

加入我们的Discord社区这里

致谢

此项目的贡献者列表可在CONTRIBUTORS中找到。

许可证

nanoFramework 类库遵循MIT许可证

行为准则

此项目已采用贡献者契约定义的行为准则,以阐明我们社区中预期的行为。有关更多信息,请参阅.NET基金会行为准则

.NET基金会

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

产品 兼容和附加计算的目标框架版本。
.NET Framework net is compatible. 
兼容的目标框架
包含的目标框架(在包中)
了解有关目标框架.NET标准的更多信息。

NuGet包

此包未被任何NuGet包使用。

GitHub仓库

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

版本 下载 最后更新
1.0.14 48 7/30/2024
1.0.7 154 2/6/2024
1.0.6 92 2/2/2024
1.0.3 230 11/9/2023
1.0.2 150 10/30/2023