導航:首頁 > 文檔加密 > aesiv在線加密工具

aesiv在線加密工具

發布時間:2023-02-28 07:14:32

㈠ ios開發中aes加密填充位元組iv怎麼填充

之前在項目上用到AES256加密解密演算法,剛開始在java端加密解密都沒有問題,在iOS端加密解密也沒有問題。但是奇怪的是在java端加密後的文件在iOS端無法正確解密打開,然後簡單測試了一下,發現在java端和iOS端採用相同明文,相同密鑰加密後的密文不一樣!上網查了資料後發現iOS中AES加密演算法採用的填充是PKCS7Padding,而java不支持PKCS7Padding,只支持PKCS5Padding。我們知道加密演算法由演算法+模式+填充組成,所以這兩者不同的填充演算法導致相同明文相同密鑰加密後出現密文不一致的情況。那麼我們需要在java中用PKCS7Padding來填充,這樣就可以和iOS端填充演算法一致了。
要實現在java端用PKCS7Padding填充,需要用到bouncycastle組件來實現,下面我會提供該包的下載。啰嗦了一大堆,下面是一個簡單的測試,上代碼!
001 package com.encrypt.file;
002
003
004 import java.io.UnsupportedEncodingException;
005 importjava.security.Key;
006 import java.security.Security;
007
008 importjavax.crypto.Cipher;
009 importjavax.crypto.SecretKey;
010 importjavax.crypto.spec.SecretKeySpec;
011
012 public classAES256Encryption{
013
014 /**
015 * 密鑰演算法
016 * java6支持56位密鑰,bouncycastle支持64位
017 * */
018 public static finalString KEY_ALGORITHM="AES";
019
020 /**
021 * 加密/解密演算法/工作模式/填充方式
022 *
023 * JAVA6 支持PKCS5PADDING填充方式
024 * Bouncy castle支持PKCS7Padding填充方式
025 * */
026 public static finalString CIPHER_ALGORITHM="AES/ECB/PKCS7Padding";
027
028 /**
029 *
030 * 生成密鑰,java6隻支持56位密鑰,bouncycastle支持64位密鑰
031 * @return byte[] 二進制密鑰
032 * */
033 public static byte[] initkey() throwsException{
034
035 // //實例化密鑰生成器
036 // Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
037 // KeyGenerator kg=KeyGenerator.getInstance(KEY_ALGORITHM, "BC");
038 // //初始化密鑰生成器,AES要求密鑰長度為128位、192位、256位
039 //// kg.init(256);
040 // kg.init(128);
041 // //生成密鑰
042 // SecretKey secretKey=kg.generateKey();
043 // //獲取二進制密鑰編碼形式
044 // return secretKey.getEncoded();
045 //為了便於測試,這里我把key寫死了,如果大家需要自動生成,可用上面注釋掉的代碼
046 return new byte[] { 0x08, 0x08, 0x04, 0x0b, 0x02, 0x0f, 0x0b, 0x0c,
047 0x01, 0x03, 0x09, 0x07, 0x0c, 0x03, 0x07, 0x0a, 0x04, 0x0f,
048 0x06, 0x0f, 0x0e, 0x09, 0x05, 0x01, 0x0a, 0x0a, 0x01, 0x09,
049 0x06, 0x07, 0x09, 0x0d };
050 }
051
052 /**
053 * 轉換密鑰
054 * @param key 二進制密鑰
055 * @return Key 密鑰
056 * */
057 public static Key toKey(byte[] key) throwsException{
058 //實例化DES密鑰
059 //生成密鑰
060 SecretKey secretKey=newSecretKeySpec(key,KEY_ALGORITHM);
061 returnsecretKey;
062 }
063
064 /**
065 * 加密數據
066 * @param data 待加密數據
067 * @param key 密鑰
068 * @return byte[] 加密後的數據
069 * */
070 public static byte[] encrypt(byte[] data,byte[] key) throwsException{
071 //還原密鑰
072 Key k=toKey(key);
073 /**
074 * 實例化
075 * 使用 PKCS7PADDING 填充方式,按如下方式實現,就是調用bouncycastle組件實現
076 * Cipher.getInstance(CIPHER_ALGORITHM,"BC")
077 */
078 Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
079 Cipher cipher=Cipher.getInstance(CIPHER_ALGORITHM, "BC");
080 //初始化,設置為加密模式
081 cipher.init(Cipher.ENCRYPT_MODE, k);
082 //執行操作
083 returncipher.doFinal(data);
084 }
085 /**
086 * 解密數據
087 * @param data 待解密數據
088 * @param key 密鑰
089 * @return byte[] 解密後的數據
090 * */
091 public static byte[] decrypt(byte[] data,byte[] key) throwsException{
092 //歡迎密鑰
093 Key k =toKey(key);
094 /**
095 * 實例化
096 * 使用 PKCS7PADDING 填充方式,按如下方式實現,就是調用bouncycastle組件實現
097 * Cipher.getInstance(CIPHER_ALGORITHM,"BC")
098 */
099 Cipher cipher=Cipher.getInstance(CIPHER_ALGORITHM);
100 //初始化,設置為解密模式
101 cipher.init(Cipher.DECRYPT_MODE, k);
102 //執行操作
103 returncipher.doFinal(data);
104 }
105 /**
106 * @param args
107 * @throws UnsupportedEncodingException
108 * @throws Exception
109 */
110 public static void main(String[] args) {
111
112 String str="AES";
113 System.out.println("原文:"+str);
114
115 //初始化密鑰
116 byte[] key;
117 try {
118 key = AES256Encryption.initkey();
119 System.out.print("密鑰:");
120 for(int i = 0;i<key.length;i++){
121 System.out.printf("%x", key[i]);
122 }
123 System.out.print("\n");
124 //加密數據
125 byte[] data=AES256Encryption.encrypt(str.getBytes(), key);
126 System.out.print("加密後:");
127 for(int i = 0;i<data.length;i++){
128 System.out.printf("%x", data[i]);
129 }
130 System.out.print("\n");
131
132 //解密數據
133 data=AES256Encryption.decrypt(data, key);
134 System.out.println("解密後:"+newString(data));
135 } catch (Exception e) {
136 // TODO Auto-generated catch block
137 e.printStackTrace();
138 }
139
140 }
141 }

㈡ aescrypt是一個好的文件加密工具嗎

aescrypt的確是一個文件加密的軟體,它可以運行在多個操作系統上,比如windows,linux什麼的。同時它採用的是業界通用的AES加密演算法。
舉例,如果你在windows上用的話,之需要右鍵點擊一下文件,然後選擇AES加密/解密,同時輸入密碼就好了。挺簡單的。

㈢ 最好的免費視頻加密軟體是哪個

免費視頻加密軟體,行業內還真沒發現完全免費的。視頻加密軟體,視頻加密是指對視頻數據進行保護,防止用戶提取出視頻的原始數據,防止未經授權的人隨意觀看,防止用戶使用錄屏軟體進行錄制。免費的不知道,但行業內早期最好的視頻加密軟體,不得不提超時代視頻加密軟體,這個軟體一度佔領整個視頻加密領域,知名度也很高。

目前比較好用的是大黃蜂視頻加密軟體。它具備安全檢測功能,可以檢測虛擬機、對抗破解逆向工具、檢測系統可疑翻錄軟體等。大黃蜂採用獨特的視頻編碼技術,加密後的視頻無法被還原回原文件。同時提供多種智能防翻錄技術,嚴防各種可能的威脅。配備商家用戶管理系統,可以通過帳號進行課程授權,帳號自動綁定用戶電腦/手機。

六大優勢功能模塊

1.高強度加密防護:視頻採用逐幀加密演算法高強度加密破解逆向防護,虛擬機檢測,模擬器檢測絕非只是簡單加殼或偽裝加密。

2.智能防翻錄檢測:軟體自動檢測各種已知和未知的翻錄軟體,可以實時上報可疑翻錄行為支持電腦和手機防翻錄防截屏 支持多種水印模式,水印包含學生信息。

3.在線觀看 離線觀看:雲端存儲在線播放,學生使用更方便 支持離線觀看,可以網路雲盤導入,WIFI導入視頻等方式。

4.聯網授權 綁定設備:聯網驗證授權賬號,登錄後自動綁定設備,杜絕多人共用賬號情況。後台可以控制課程授權,隨時收回授權!

5.支持多平台播放:支持Windows,安卓手機/平板,iPhone/ iPad,Mac上播放加密視頻。

6.後台管理系統:後台提供課程管理、學生管理、安全配置以及訂單管理等功能,可以方便地維護學生信息和課程信息。

在線教學視頻加密等功能,幫你打破防翻錄、防破解技術壁壘,保護在線視頻版權!

㈣ aes 128,192,256如何加密如何解密有沒有在線工具在線加密,在線解密

....比如『明文』用aes-ecb-256加密 zp填充 密碼123 以utf8輸出b64加密後就變成了『/9+LAeoE=』解密就要反過來
所以你要知道你要解密的文件 加密方式 密碼 填充 輸出(二次加密) 和 編碼 甚至還有偏移量所以 爆破?不存在的

㈤ 暴力破解AES加密需要什麼工具

這個加密好像是不能破解的吧,只能暴力破解,如果加密位數太多,現在的計數是無法解密的

閱讀全文

與aesiv在線加密工具相關的資料

熱點內容
32單片機的重映射哪裡改 瀏覽:814
為什麼前端不用刷演算法題 瀏覽:706
對稱加密系統和公鑰加密系統 瀏覽:428
歷史地理pdf 瀏覽:604
物聯網雲伺服器框架 瀏覽:646
sybaseisql命令 瀏覽:181
android權威編程指南pdf 瀏覽:661
哪些軟體屬於加密軟體 瀏覽:644
文件夾75絲什麼意思 瀏覽:468
最便宜sop8單片機 瀏覽:964
圖解周易預測學pdf 瀏覽:418
c盤莫名奇妙多了幾個文件夾 瀏覽:169
貴州花溪門票優惠app哪個好 瀏覽:801
如何說話不會讓人有被命令的感覺 瀏覽:438
哪裡可下載湘工惠app 瀏覽:263
福特python 瀏覽:310
pdf轉換成word表格 瀏覽:351
無線遠端伺服器無響應是什麼意思 瀏覽:670
兩位整數倒序輸出python 瀏覽:781
為什麼我的世界天空伺服器進不去 瀏覽:262