Android 中AES加密举例

来源:互联网 发布:弯尖美工钢笔推荐 编辑:程序博客网 时间:2024/06/08 17:14

个人学习总结,如有侵权请留言联系删除,忘海涵。


这是我在项目中使用的AESUtil文件。包括了Encrypt函数加密
Decrypt函数解密,其中Key是从Mapplication中取到。

package com.utils.crypt;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;import com.shennongshi.dingdong.MApplication;import com.utils.tools.XLogger;import android.text.TextUtils;import android.util.Base64;public class AESUtil {private static String KEY = "";public static String Encrypt(String sSrc) throws Exception {if (TextUtils.isEmpty(KEY)) KEY = MApplication.getAPPKEY();if (TextUtils.isEmpty(KEY)) return null;byte[] raw = KEY.getBytes("utf-8");SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");Cipher cipher = Cipher.getInstance("AES/ECB/ZeroBytePadding");cipher.init(Cipher.ENCRYPT_MODE, skeySpec);byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));return Base64.encodeToString(encrypted, Base64.NO_WRAP);}public static String Decrypt(String sSrc) throws Exception {try {if (TextUtils.isEmpty(KEY)) KEY = MApplication.getAPPKEY();if (TextUtils.isEmpty(KEY)) return null;byte[] raw = KEY.getBytes("utf-8");SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");Cipher cipher = Cipher.getInstance("AES/ECB/ZeroBytePadding");cipher.init(Cipher.DECRYPT_MODE, skeySpec);byte[] encrypted1 = Base64.decode(sSrc, Base64.NO_WRAP);try {byte[] original = cipher.doFinal(encrypted1);String originalString = new String(original,"utf-8");return originalString;} catch (Exception e) {XLogger.e("AESUtil", e.toString());return null;}} catch (Exception ex) {XLogger.e("AESUtil", ex.toString());return null;}}}
                                             
1 0
原创粉丝点击