簡體   English   中英

需要針對C#Micro Framework的HMAC-SHA1實現

[英]Need an HMAC-SHA1 implementation for C# Micro Framework

就像標題所說,我正在為C#尋找HMAC-SHA1實現。 這將在微框架下運行,因此我無法使用內置的System.Security.Cryptography類。

如果我能理解原始代碼,移植庫沒有問題。 我在Javascript中找到了一個源代碼,並驗證它與預期值匹配,但我無法移植,因為我不能總是告訴它們的值是什么類型。

所以任何人都知道任何C#(或Java(或其他強類型))實現嗎?

Bouncycastle C#加密庫包含自由許可的C#源代碼。 提取Org.BouncyCastle.Crypto.Digests.Sha1DigestOrg.BouncyCastle.Crypto.Macs.HMac類並將它們合並到您的代碼中應該是微不足道的。 它似乎沒有任何依賴於那些.NET類,但我不知道微框架中包含哪些類。

通過使用Mono項目提供的代碼,您可以使用與Microsoft相同的API的C#版本。 這是MIT X11的許可證,因此很容易在任何項目中重復使用。 看到:

https://github.com/mono/mono/blob/master/mcs/class/corlib/System.Security.Cryptography/HMACSHA1.cs

https://github.com/mono/mono/blob/master/mcs/class/corlib/System.Security.Cryptography/HMAC.cs

和相關文件。 您還可以使用單元測試來確保它在您的平台上正常運行。

sphlib是一個開源庫,它包含許多散列函數的優化代碼,包括C和Java中的SHA-1。 Java版本還包括通用HMAC實現(可與任何實現的散列函數一起使用)。 由於代碼是基本的Java,只有基本的整數運算(它本來也可以在J2ME平台上運行),所以將它轉換為C#應該很容易(你只需要改變Java的' >>> '無符號右移運算符'轉換為相應的C#無符號類型,然后進行常規右移)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM