回答
請參閱https://en.wikipedia.org/wiki/SHA-1並且您注意到,在LittleEndian中存儲整數的8位控制器不是您想法的最佳平臺。 如果原始數據不需要太多RAM,atmega328的可用RAM(2kB)應該足夠了。
所以,玩得開心;)
我最關心的是「爲什麼」?
爲了確保數據的完整性,CRC校驗和或類似的問題或最終的私有散列算法有什麼問題?
我只需要從傳感器獲取一個數值並生成該值的哈希值並將其發送到網絡。 –
你是什麼意思的數值的「散列」?根據我的理解,哈希函數用於將較大的東西壓縮到較小的東西,但仍然是唯一的,以識別大的東西,例如確保其完整性。 SHA-1產生一個20字節的散列號,以識別64字節的一系列塊。 「一個來自傳感器的數值」,小於20字節,可以更好地傳輸;) – datafiddler
我的問題不是傳輸值,以便入侵者可以看到這個值。我只需要得到一個數值並生成這個值的散列。 –
所以這個問題到底是什麼?在我看來,你只需要在網上找到一些可以自由使用的SHA1 C/C++代碼,併爲Arduino編譯它。 – paxdiablo
我只需要從傳感器獲取一個數值並生成該值的哈希值並將該哈希值發送到網絡。 –