導航:首頁 > 編程語言 > aes128java

aes128java

發布時間:2024-10-26 06:55:40

java的瑣是什麼有幾種鎖幾種鎖的區別又是什麼

眾所周知,java開發語言提供了很方便的開發平台,而且開發出來的程序很容易在不同的平台上面進行移植,現在越來越多的人使用它開發軟體。
Java有了它方便的一個方面,但是他同時也帶給了開發者一個煩惱,這就是保護的辦法不多,而且大多數不是很好用,這樣自己辛苦開發出來的程序很容易被人復制而據為己有,一般情況下,大多數的人都是用混編器(java obfuscator)來把開發出來的程序進行打亂以達到沒有辦法來反編譯觀看源代碼,但是這種辦法在網上很容易找到相關的軟體來重新整理,那麼這個混編只能控制一些本來也沒有辦法動您的軟體的人,而對於一些掌握工具的人幾乎是透明的,還有就是利用硬體加密鎖,但大多數公司提供的硬體加密鎖只是提供了一些dll的連接或簡單的api調用,只要反編譯他們,就很容易把一些api調用去掉,這樣硬體加密鎖也就不起作用了,但是現在到底有沒有好的辦法呢?
以色列阿拉丁公司提供的*** HL加密鎖提供的外殼加密工具中有一個叫做數據加密的功能,這個功能能更好的防止去除api的調用,各位都知道:硬體加密鎖的保護原理就是要您被加密過的軟體和加密鎖的硬體要緊緊地結合在一起,而且不容易被輕易的剔出原來的調用,這樣才能更好的保證您的軟體不被盜版,同時這種方式也很容易被程序員掌握,要對一個軟體實現保護,只需要幾分鍾的時間就可以了,下面簡單介紹一下他的原理:
運用阿拉丁公司提供的外殼工具先把調用您的java解釋器來進行加密,那麼就是說如果要運用這個解釋器就需要有一把特定的加密鎖存在,然後我們再運用它提供的外殼加密工具中的內容加密,把您寫好的java程序當作一個文件來處理而對他進行加密,這個加密是採用的AES128位的演算法的,這樣這個加密過的數據文件??您的軟體就只能被您保護過的java解釋器來進行解釋,但是在沒有加密鎖的情況下就不能夠運行您的軟體,從而達到真正保護您的軟體的目的。

Ⅱ AES演算法加解密:java.security.InvalidKeyException: Illegal key size

在處理AES演算法加解密時,遇到了一個「java.security.InvalidKeyException: Illegal key size」的錯誤,這個錯誤在本地環境運行沒有問題,但推送到線上環境後出現。通過搜索引擎,發現這個問題可能與軟體受到美國出口管制有關,超過128位密鑰大小時,需要替換「local_policy.jar」和「US_export_policy.jar」兩個文件。在本地環境,替換這兩個文件後問題得到解決,但在線上環境,問題依舊存在。進一步分析發現,線上環境與本地環境使用的JDK版本不同(本地JDK8 u221,線上JDK8 u101),這可能與JDK版本不一致有關,導致問題重現。查看JDK安裝目錄下的「security」文件夾,確認了線上和本地JDK文件的不同。嘗試解決該問題的方法有:手動替換「local_policy.jar」和「US_export_policy.jar」文件或升級JDK版本。但考慮到線下處理的復雜性,有人建議使用第三方庫「BouncyCastle」。雖然使用「BouncyCastle」進行解密嘗試,但問題依舊沒有解決。進一步的思考中,意識到可能需要通過代碼方式改變運行策略來解決這個問題。在Stackoverflow上找到了解決思路,即使用反射修改加密策略,通過代碼實現,無需手動替換文件或更新JDK版本。Oracle官方在JDK8 u151 Release Notes中提到,新增了一個控制加密策略的特性,使得在不手動添加包的情況下,可以擴展密鑰位數。最後的總結是,保持開發環境、測試環境和線上環境使用的JDK版本一致,可以避免不必要的時間浪費,同時,通過代碼方式修改加密策略提供了一種更高效、靈活的解決方案。

Ⅲ JAVA AES加密

這篇文章有詳細的AES演算法的使用講解,希望可以幫助到你,https://blog.csdn.net/xingkong_hdc/article/details/79413462

Ⅳ java使用pkcs7padding為什麼報錯

首先准備一份明文和秘鑰:
var plaintText = 'aaaaaaaaaaaaaaaa'; // 明文
var keyStr = 'bbbbbbbbbbbbbbbb'; // 一般key為一個字元串

參看官網文檔,AES方法是支持AES-128、AES-192和AES-256的,加密過程中使用哪種加密方式取決於傳入key的類型,否則就會按照AES-256的方式加密。
CryptoJS supports AES-128, AES-192, and AES-256. It will pick the variant by the size of the key you pass in. If you use a passphrase, then it will generate a 256-bit key.
由於Java就是按照128bit給的,但是由於是一個字元串,需要先在前端將其轉為128bit的才行。

Ⅳ 求一個java演算法,用128位密鑰的AES加密128位明文,得出的密文還是128位...很著急,非常感謝各位大神,求救!

/**
* 加密
*
* @param content 需要加密的內容
* @param password 加密密碼
* @return
*/
public static byte[] encrypt(String content, String password) {
try {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128, new SecureRandom(password.getBytes()));
SecretKey secretKey = kgen.generateKey();
byte[] enCodeFormat = secretKey.getEncoded();
SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
Cipher cipher = Cipher.getInstance("AES");// 創建密碼器
byte[] byteContent = content.getBytes("utf-8");
cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化
byte[] result = cipher.doFinal(byteContent);
return result; // 加密
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return null;
}

Ⅵ 如何把以下 java AES-128-CBC 加密方法改為 php 的實現

$key = hash('md5', $key, true);

$iv = '';

$size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$input = Security::pkcs5_pad($input, $size);

$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $input, MCRYPT_MODE_CBC, $iv);

// output wd/OTHoIXwgHGDHcj8OTgg==
echo base64_encode($encrypted);

閱讀全文

與aes128java相關的資料

熱點內容
回眸pdf 瀏覽:707
iwebsns源碼 瀏覽:201
python實現自動發送微信消息 瀏覽:501
如何編譯出你好兩個字 瀏覽:345
博途編譯意思 瀏覽:696
java的sort函數 瀏覽:203
切面編程拋出異常 瀏覽:72
csr的文件怎麼解壓 瀏覽:712
解壓帶製作過程 瀏覽:148
易語言編譯時不小心刪除怎麼恢復 瀏覽:848
文件夾重命名改不了名稱怎麼辦 瀏覽:228
美國恐怖故事在哪個app 瀏覽:436
轉型代駕app哪個好用 瀏覽:209
java獲取文件的類型 瀏覽:783
國外電子教材系列pdf 瀏覽:889
手機解壓rap 瀏覽:667
單片機數據記錄 瀏覽:570
安卓手機怎麼語音控制刷視頻 瀏覽:891
共享文件夾只顯示目錄 瀏覽:96
邏輯學十五講pdf 瀏覽:752