2014-01-26 105 views
1

我正在處理使用自定義協議進行密碼通信的遺留應用程序。隨機AES密鑰在傳統的Java應用程序產生這樣的:在節點上生成AES密鑰

keygen = KeyGenerator.getInstance("AES"); 
keygen.init(128); 
keygen.generateKey().getEncoded(); 

我一直在找沒有運氣上crypto解決方案。我如何在nodejs上生成這個密鑰?

回答

0

該代碼可能沒有你想象的那麼多。它只生成16(128/8)個安全隨機字節,然後在其周圍封裝一個關鍵對象。因此,使用nodejs,您只需生成16個字節並將算法提供給原始密鑰數據。

如果您要使用生成的密鑰,請確保您從getEncoded()方法返回的字節創建二進制編碼的字符串或緩衝區。如果您需要密鑰爲過程中某個文本字符串,則可以使用十六進制編碼/解碼。

查看randomBytes()createCipheriv()的信息。

AES密鑰只是密碼強的隨機字節,DES(奇偶校驗位)和RSA(質數計算)密鑰都不是。

+0

加密密鑰不僅僅是隨機字節。請參閱http://docs.oracle.com/javase/7/docs/api/java/security/SecureRandom.html –

+0

@JonathanRosenne:這是多少*隨機? –

+0

@JonathanRosenne行,做了「密碼強大」,雖然我已經把「安全隨機」放在第一段... –