引用:
作者crisliu2004
你可能要先搞懂
AES_Init();裡面做了什麼事
AES_ExpandKey(key);對傳進去的key做了什麼修改
AES_Encrypt(block, key);這裡用的encrypt法是哪種方法把key跟block結合
AES_Done();這又是幹什麼的? 通常block與key結合後應該就做完了
|
研究了2天
裡面還沒全懂
但是知道
AES_Init() ----->預先準備好要加密用的一些物件
AES_ExpandKey(key); 展開金鑰 用於加密時不要有重複 (但是前輩因為公司spec的需要 將此部份移除 )
AES_Encrypt(block, key);<----目前卡在 需要對block作額外的處理.填充額外的字元
AES_Done();整個加密完成.移除物件
昨天問的javascript
其實也是這個 '公司spec特殊'版的AES的需求
同樣用於塞入填充字元
因為改寫成java才知道用途
謝謝
還請提示該如何直接修正SimpleCrypto於
代碼:
private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/ZeroBytePadding");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(clear);
return encrypted;
}
部分
對於傳入的raw做部分的填充
謝謝