日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

aes密钥扩展java实现,需要使用bouncycastle将AES 256密钥“扩展”为...

發布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 aes密钥扩展java实现,需要使用bouncycastle将AES 256密钥“扩展”为... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

AES-128使用10輪,AES-192使用12輪,AES-256使用14輪.

使用BouncyCastle,可以在名為org.bouncycastle.crypto.engines.AESEngine的類中的私有方法generateWorkingKey()中實現它.這不是通用的實現:

該方法開始于:

[...]

int KC = keyLen >>> 2;

ROUNDS = KC + 6; // This is not always true for the generalized Rijndael that allows larger block sizes

int[][] W = new int[ROUNDS+1][4]; // 4 words in a block

switch (KC) {

case 4:

[...]

for (int i = 1; i <= 10; ++i)

閱讀此代碼,很容易看到,如果密鑰長度為128位,則keyLen值為16(字節),因此KC為4,則ROUNDS為10(這是循環的上限).但這是硬編碼的.對于其他密鑰長度,在包含循環(上限為輪數)的開關情況下,也以相同的方式對其進行硬編碼.

因此,對于您的Cryptonight實現,其密鑰長度為256位,但經過10次回合,BouncyCastle實現中的硬編碼值不符合您的需求.

因此,您需要派生BouncyCastle并修改此代碼以實現您的目標.

總結

以上是生活随笔為你收集整理的aes密钥扩展java实现,需要使用bouncycastle将AES 256密钥“扩展”为...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。