国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
跨JAVA,IOS平臺的AES加密解密算法
         我們項目的需求是IOS前臺進行數(shù)據(jù)加密,java后臺進行數(shù)據(jù)解密,采用對稱加密算法。權衡利弊后選用AES加密算法。在實現(xiàn)的過程中發(fā)現(xiàn)IOS加密的數(shù)據(jù)java端解密不了,翻閱資料發(fā)現(xiàn)是IOS端ASE的填充算法采用PKCS7Padding,而我在java端采用的填充算法是PKCS5Padding或者NONE,繼續(xù)查閱資料終于找到JAVA端可用的基于PACS7Padding的加解密算法,自己改造了一下發(fā)布如下:
Java代碼  
  1. package com.ys.dk.common.util;  
  2.   
  3. import java.security.Security;  
  4. import javax.crypto.Cipher;  
  5. import javax.crypto.SecretKey;  
  6. import javax.crypto.spec.SecretKeySpec;  
  7. import org.bouncycastle.util.encoders.Base64;  
  8.   
  9. public class AESUtil {  
  10.     /** 
  11.      * 密鑰算法 java6支持56位密鑰,bouncycastle支持64位 
  12.      * */  
  13.     public static final String KEY_ALGORITHM = "AES";  
  14.     public static final String CIPHER_ALGORITHM = "AES/ECB/PKCS7Padding";  
  15.     //key長度為[128bit(16byte),192bit(24byte),256bit(32byte)]中的一個  
  16.     public static final String KEY = "1234567890123456";  
  17.     public static final SecretKey secretKey  = new SecretKeySpec(KEY.getBytes(), KEY_ALGORITHM);  
  18.     static {  
  19.         Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());  
  20.     }  
  21.   
  22.     /** 
  23.      * 加密數(shù)據(jù) 
  24.      * @param str 
  25.      * @return String 加密后的數(shù)據(jù) 
  26.      * */  
  27.     public static String encrypt(String str) throws Exception {  
  28.         Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);  
  29.         // 初始化,設置為加密模式  
  30.         cipher.init(Cipher.ENCRYPT_MODE, secretKey);  
  31.         // 執(zhí)行操作  
  32.         byte[] data = cipher.doFinal(str.getBytes());  
  33.         data = Base64.encode(data);  
  34.         return new String(data,"UTF-8");  
  35.     }  
  36.   
  37.     /** 
  38.      * 解密數(shù)據(jù) 
  39.      *  
  40.      * @param str 
  41.      * @return String 解密后的數(shù)據(jù) 
  42.      * */  
  43.     public static String decrypt(String str) throws Exception {  
  44.         byte[] data = Base64.decode(str);  
  45.         Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);  
  46.         // 初始化,設置為解密模式  
  47.         cipher.init(Cipher.DECRYPT_MODE, secretKey);  
  48.         // 執(zhí)行操作  
  49.         return new String(cipher.doFinal(data),"UTF-8");  
  50.     }  
  51.   
  52.     public static void main(String[] args) throws Exception {  
  53.         String str = "你好";  
  54.         System.out.println("原始串:"+str);  
  55.         String enc = AESUtil.encrypt(str);  
  56.      //   enc= "llQCl2Zii01ora9J3PJxNA==";  
  57.         System.out.println("加密后:"+enc);  
  58.         String dec = AESUtil.decrypt(enc);  
  59.         System.out.println("解密后:"+dec);  
  60.     }  
  61.   
  62.       
  63. }  

   注意兩點:
   1, 加解密用到了bouncycastle的jar,附件里面有下載
    2,用附件中的local_policy.jar,US_export_policy.jar覆蓋JDK安裝路徑的\jre\lib\security(例如我的目錄結構為C:\Program Files\Java\jdk1.6.0_43\jre\lib\security,別弄錯目錄了)目錄下的兩個jar   
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JAVA版微信小程序用戶數(shù)據(jù)的簽名驗證和加解密
常用加密算法的Java實現(xiàn)總結(二)
Java中AES的加密解密算法(項目中可以直接使用)
Java各種加密方式集錦(AES,DES,RSA,DSA,MD5,SHA)
安全系列之——手寫 JAVA 加密、解密
3DES加密解密調(diào)用示例
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服