亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > Android > 正文

Android和.NET通用的AES算法

2019-11-11 06:29:02
字體:
供稿:網(wǎng)友

原文引自 http://www.cnblogs.com/ahui/archive/2011/04/22/2025045.html

1.NET源代碼:

using System;using System.Text;using System.Security.Cryptography; namespace ConsoleapplicationDemo{    /// <summary>    /// AES對稱加密解密類    /// </summary>    public class AESHelper    {        #region 成員變量        /// <summary>        /// 密鑰(32位,不足在后面補0)        /// </summary>        PRivate const string _passwd = "ihlih*0037JOHT*)(PIJY*(()JI^)IO%";        /// <summary>        /// 運算模式        /// </summary>        private static CipherMode _cipherMode = CipherMode.ECB;        /// <summary>        /// 填充模式        /// </summary>        private static PaddingMode _paddingMode = PaddingMode.PKCS7;        /// <summary>        /// 字符串采用的編碼        /// </summary>        private static Encoding _encoding = Encoding.UTF8;        #endregion         #region 輔助方法        /// <summary>        /// 獲取32byte密鑰數(shù)據(jù)        /// </summary>        /// <param name="passWord">密碼</param>        /// <returns></returns>        private static byte[] GetKeyArray(string password)        {            if (password == null)            {                password = string.Empty;            }             if (password.Length < 32)            {                password = password.PadRight(32, '0');            }            else if (password.Length > 32)            {                password = password.Substring(0, 32);            }             return _encoding.GetBytes(password);        }         /// <summary>        /// 將字符數(shù)組轉(zhuǎn)換成字符串        /// </summary>        /// <param name="inputData"></param>        /// <returns></returns>        private static string ConvertByteToString(byte[] inputData)        {            StringBuilder sb = new StringBuilder(inputData.Length * 2);            foreach (var b in inputData)            {                sb.Append(b.ToString("X2"));            }            return sb.ToString();        }         /// <summary>        /// 將字符串轉(zhuǎn)換成字符數(shù)組        /// </summary>        /// <param name="inputString"></param>        /// <returns></returns>        private static byte[] ConvertStringToByte(string inputString)        {            if (inputString == null || inputString.Length < 2)            {                throw new ArgumentException();            }            int l = inputString.Length / 2;            byte[] result = new byte[l];            for (int i = 0; i < l; ++i)            {                result[i] = Convert.ToByte(inputString.Substring(2 * i, 2), 16);            }             return result;        }        #endregion         #region 加密        /// <summary>        /// 加密字節(jié)數(shù)據(jù)        /// </summary>        /// <param name="inputData">要加密的字節(jié)數(shù)據(jù)</param>        /// <param name="password">密碼</param>        /// <returns></returns>        public static byte[] Encrypt(byte[] inputData, string password)        {            AesCryptoServiceProvider aes = new AesCryptoServiceProvider();            aes.Key = GetKeyArray(password);            aes.Mode = _cipherMode;            aes.Padding = _paddingMode;            ICryptoTransform transform = aes.CreateEncryptor();            byte[] data = transform.TransformFinalBlock(inputData, 0, inputData.Length);            aes.Clear();            return data;        }         /// <summary>        /// 加密字符串(加密為16進制字符串)        /// </summary>        /// <param name="inputString">要加密的字符串</param>        /// <param name="password">密碼</param>        /// <returns></returns>        public static string Encrypt(string inputString,string password)        {            byte[] toEncryptArray = _encoding.GetBytes(inputString);            byte[] result = Encrypt(toEncryptArray, password);            return ConvertByteToString(result);        }         /// <summary>        /// 字符串加密(加密為16進制字符串)        /// </summary>        /// <param name="inputString">需要加密的字符串</param>        /// <returns>加密后的字符串</returns>        public static string EncryptString(string inputString)        {            return Encrypt(inputString, _passwd);        }        #endregion         #region 解密        /// <summary>        /// 解密字節(jié)數(shù)組        /// </summary>        /// <param name="inputData">要解密的字節(jié)數(shù)據(jù)</param>        /// <param name="password">密碼</param>        /// <returns></returns>        public static byte[] Decrypt(byte[] inputData, string password)        {            AesCryptoServiceProvider aes = new AesCryptoServiceProvider();            aes.Key = GetKeyArray(password);            aes.Mode = _cipherMode;            aes.Padding = _paddingMode;            ICryptoTransform transform = aes.CreateDecryptor();            byte[] data = null;            try            {                data = transform.TransformFinalBlock(inputData, 0, inputData.Length);            }            catch            {                return null;            }            aes.Clear();            return data;        }         /// <summary>        /// 解密16進制的字符串為字符串        /// </summary>        /// <param name="inputString">要解密的字符串</param>        /// <param name="password">密碼</param>        /// <returns>字符串</returns>        public static string Decrypt(string inputString,string password)        {            byte[] toDecryptArray = ConvertStringToByte(inputString);            string decryptString = _encoding.GetString(Decrypt(toDecryptArray, password));            return decryptString;        }         /// <summary>        /// 解密16進制的字符串為字符串        /// </summary>        /// <param name="inputString">需要解密的字符串</param>        /// <returns>解密后的字符串</returns>        public static string DecryptString(string inputString)        {            return Decrypt(inputString, _passwd);        }        #endregion    }}

2.Android代碼:

package com.google.test; import java.io.UnsupportedEncodingException;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec; /** AES對稱加密解密類 **/public class AESHelper {     /** 算法/模式/填充 **/    private static final String CipherMode = "AES/ECB/PKCS5Padding";     /** 創(chuàng)建密鑰 **/    private static SecretKeySpec createKey(String password) {        byte[] data = null;        if (password == null) {            password = "";        }        StringBuffer sb = new StringBuffer(32);        sb.append(password);        while (sb.length() < 32) {            sb.append("0");        }        if (sb.length() > 32) {            sb.setLength(32);        }         try {            data = sb.toString().getBytes("UTF-8");        }catch (UnsupportedEncodingException e) {            e.printStackTrace();        }        return new SecretKeySpec(data,"AES");    }     /** 加密字節(jié)數(shù)據(jù) **/    public static byte[] encrypt(byte[] content, String password) {        try {            SecretKeySpec key = createKey(password);            Cipher cipher = Cipher.getInstance(CipherMode);            cipher.init(Cipher.ENCRYPT_MODE, key);            byte[] result = cipher.doFinal(content);            return result;        }catch (Exception e) {            e.printStackTrace();        }        return null;    }     /** 加密(結(jié)果為16進制字符串) **/    public static String encrypt(String content, String password) {        byte[] data = null;        try {            data = content.getBytes("UTF-8");        }catch (Exception e) {            e.printStackTrace();        }        data = encrypt(data, password);        String result = byte2hex(data);        return result;    }     /** 解密字節(jié)數(shù)組 **/    public static byte[] decrypt(byte[] content, String password) {        try {            SecretKeySpec key = createKey(password);            Cipher cipher = Cipher.getInstance(CipherMode);            cipher.init(Cipher.DECRYPT_MODE, key);            byte[] result = cipher.doFinal(content);            return result;        }catch (Exception e) {            e.printStackTrace();        }        return null;    }     /** 解密16進制的字符串為字符串 **/    public static String decrypt(String content, String password) {        byte[] data = null;        try {            data = hex2byte(content);        }catch (Exception e) {            e.printStackTrace();        }        data = decrypt(data, password);        if (data == null)            return null;        String result = null;        try {            result = new String(data,"UTF-8");        }catch (UnsupportedEncodingException e) {            e.printStackTrace();        }        return result;    }     /** 字節(jié)數(shù)組轉(zhuǎn)成16進制字符串 **/    public static String byte2hex(byte[] b) { // 一個字節(jié)的數(shù),        StringBuffer sb = new StringBuffer(b.length * 2);        String tmp = "";        for (int n = 0; n < b.length; n++) {            // 整數(shù)轉(zhuǎn)成十六進制表示            tmp = (java.lang.Integer.toHexString(b[n] & 0XFF));            if (tmp.length() == 1) {                sb.append("0");            }            sb.append(tmp);        }        return sb.toString().toUpperCase();// 轉(zhuǎn)成大寫    }     /** 將hex字符串轉(zhuǎn)換成字節(jié)數(shù)組 **/    private static byte[] hex2byte(String inputString) {        if (inputString == null || inputString.length() < 2) {            return new byte[0];        }        inputString = inputString.toLowerCase();        int l = inputString.length() / 2;        byte[] result = new byte[l];        for (int i = 0; i < l; ++i) {            String tmp = inputString.substring(2 * i, 2 * i + 2);            result[i] = (byte) (Integer.parseInt(tmp, 16) & 0xFF);        }        return result;    }}

另:要支持AES/ECB/ZeroBytePadding(對應(yīng).net的PaddingMode.Zeros),需引入bcprov .jar!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
美女爆乳18禁www久久久久久| 超碰在线播放91| 国产图片一区| 亚洲欧美久久久久一区二区三区| 精品国产91乱高清在线观看| 91tv亚洲精品香蕉国产一区7ujn| 中文字幕乱码一区| 欧美日韩视频在线一区二区观看视频| 一区二区日韩在线观看| 人人妻人人澡人人爽欧美一区双| 最近免费中文字幕大全免费第三页| 欧美在线中文| 羞羞污视频在线观看| 97成人在线观看| 欧美一级久久| 91国模大尺度私拍在线视频| 免费看精品久久片| 天天插天天操天天射| 色一情一乱一伦一区二区三区日本| 欧美精品色哟哟| 久久精品国产成人一区二区三区| 日韩情涩欧美日韩视频| 日韩免费电影一区| 在线免费观看日韩av| 99精品久久久久| 亚洲欧洲xxxx| 欧美精品1区2区| 免费一级欧美片在线播放| 久久精品国产精品亚洲综合| 亚洲自拍偷拍欧美| 一区二区在线观看免费视频| 香蕉视频在线观看免费| 91视频九色网站| 高清精品一区二区三区一区| 色大18成网站www在线观看| 视频一区二区三区不卡| 午夜精品理论片| 国产国产国产国产国产国产| 国产suv一区二区三区| 欧美三级在线| eeuss鲁片一区| 91中文在线| 欧美一区二三区| 中文乱码字幕午夜无线观看| 精品视频高清无人区区二区三区| 美女露胸一区二区三区| 欧美在线三区| 日本精品另类| heyzo中文字幕在线| 精品午夜一区二区| 国内在线免费高清视频| 男人天堂亚洲二区| 播放一区二区| 精油按摩中文字幕久久| 看女生喷水的网站在线观看| 欧美精品一区三区| 日韩欧美高清| 欧美久久九九| 懂色av蜜臀av粉嫩av永久| 国产精品私拍pans大尺度在线| 欧美国产日韩激情| 99re6热只有精品免费观看| 欧美日一区二区三区| 国产亚洲情侣一区二区无| 精品一二三区视频| 成年永久一区二区三区免费视频| 日韩免费毛片视频| 久久精品国内一区二区三区水蜜桃| 精品一区免费av| 亚洲激情自拍图| 久久久久久毛片| 成人精品第一区二区三区| 在线看视频不卡| 桃花岛成人影院| 国内精品卡一卡二卡三新区| 波霸ol色综合久久| 在线观看区一区二| 男人插曲女人视频免费| 欧美日韩大片免费观看| 大陆一级毛片免费观看| 亚洲精品久久久中文字幕| 亚洲图片制服诱惑| 日本vs亚洲vs韩国一区三区二区| 国产日韩欧美精品在线| 久久精品理论片| 天堂中文字幕一二区| 日韩视频免费观看| 成人福利免费在线观看| 国产一区二区无遮挡| 另类少妇人与禽zozz0性伦| 你懂的网站在线观看网址| 91日韩一区二区三区| 韩国福利视频一区| 中文字幕一区二区三区乱码图片| 91免费看`日韩一区二区| 日韩制服诱惑| 中文字幕视频在线观看| 小说区亚洲自拍另类图片专区| www.日韩.com| 亚洲最新视频在线播放| 久久超碰97人人做人人爱| 欧美三级网页| 草色在线视频| 爱爱视频网站| 精品在线亚洲视频| av超碰免费在线| 亚洲av无码不卡| 日产精品久久久久久久性色| 国产精品视频26uuu| 国产狂喷白浆在线观看视频| 无码少妇一区二区| 国产精品香蕉国产| 国产·精品毛片| 国产美女直播视频一区| 熟妇女人妻丰满少妇中文字幕| 黄色欧美成人| 国产精品第四页| eeuss在线播放| 国产美女极度色诱视频www| www.一区二区三区| 国产精品网站免费| 国产精品久久电影观看| 日韩一中文字幕| 熟女视频一区二区三区| 无码无套少妇毛多18pxxxx| 日本jizz中国| 成年人影院在线观看| 小小的日本在线观看免费色网| 丁香社区五月天| 中文字幕一区二区三区在线播放| 亚洲狠狠婷婷综合久久久久图片| 久久久亚洲午夜电影| 亚洲综合视频在线播放| 中文字字幕在线中文乱码| 亚洲一区二区四区蜜桃| 久久av免费观看| 不卡的日韩av| 亚洲乱码视频| 久操成人在线视频| 粉嫩虎白女毛片人体| 手机在线视频你懂的| 久久久久久www| www.xxx.国产| 色视频在线播放| av理论在线观看| 欧美精品免费看| 精品久久一区二区| 女人裸体免费网站| 国产91|九色| 亚洲一区二区美女| 亚洲精品在线播放视频| 久久精品国产精品青草| 中国极品少妇videossexhd| 亚洲日本护士毛茸茸| 久久精品国产成人av| 99久久精品一区二区| 天天想你在线观看完整版电影免费| 亚洲综合图色| 深夜福利网站在线观看| 97在线看福利| 老司机亚洲精品一区二区| 99超碰麻豆| 国产手机精品视频| 日韩av成人| 亚洲精品视频一区| 日韩亚洲精品在线观看| 国产裸体永久免费无遮挡| 国产一区二区在线播放| 亚洲美女精品成人在线视频| 欧美国产一二三区| 久久夜色精品亚洲| 国产三级国产精品国产专区50| 欧美一级淫片aaaaaaa视频| 91九色偷拍| 成人激情四射网| 中文天堂网在线www| 国产调教精品| 97人妻人人澡人人爽人人精品| 精品va天堂亚洲国产| 亚洲一级淫片| 中文字幕久热精品视频在线| 久久精品人人爽| 欧美一区二区三区黄片| 久国产精品韩国三级视频| 免费高清视频在线观看| 成人看片网站| 狠狠人妻久久久久久综合| 97dyy97影院理论片在线| 国产精品毛片视频| 精品美女一区二区| av毛片在线免费观看| 岳乳丰满一区二区三区| eeuss影院www免费视频| 日韩av高清在线观看| 成人高清免费在线| 99国产精品久久| 国产乱人乱偷精品视频| 韩日精品中文字幕| 国产大奶在线| 日韩精品视频在线| 日本久久91av| 亚洲av无码成人精品区| 亚洲综合三区| 神马久久桃色视频| 欧美在线不卡视频| 蜜桃tv一区二区三区| 亚洲欧洲韩国日本视频| 影音先锋男人资源站在线观看| 中文字幕免费国产精品| 日韩av日韩在线观看| 先锋av资源在线| 美女精品视频| 成人免费xxxxx在线观看| 农村妇女一区二区| 日本中文字幕在线2020| 精品国产免费人成电影在线观...| 亚洲精品在线视频免费观看| 久久国内精品一国内精品| 久草精品在线播放| 欧美日韩一区二区三区在线电影| 嗯~啊~轻一点视频日本在线观看| 亚洲乱码国产乱码精品精98午夜| 免费下载黄色软件| 中国黄色录像片| www.久久久久久.com| 欧美一级电影久久| 久草精品视频在线观看| 亚洲精品一二区| 久久久久亚洲av片无码v| 天天色影综合网| 日日摸夜夜添一区| 欧美精品丝袜久久久中文字幕| xxxxwwww欧美| 国产精品综合色区在线观看| 欧美亚洲国产怡红院影院| 比比资源先锋影音网| 国产精品国产精品国产专区| 天堂v视频永久在线播放| av激情成人网| 亚洲国产日韩欧美在线观看| 久久精品国产亚洲777| 日本18中文字幕| 国产亚洲电影| 日韩精品一区二区三区四区视频| 日韩情涩欧美日韩视频| 黄色羞羞视频在线观看| 91久久一区二区| 欧美成人影院| 天堂中文av在线| aaa在线观看| 麻豆网站在线观看| 四虎影视4hu4虎成人| 91亚洲精品在线观看| 制服丝袜综合日韩欧美| 亚洲伊人久久综合| 亚洲av永久无码精品| 视频在线这里都是精品| 色一情一乱一伦一区二区三欧美| 久久久久久久久蜜桃| 国产成人鲁色资源国产91色综| 伊人成色综合网| 精品国产老师黑色丝袜高跟鞋| 69国产成人精品视频软件| 国产精品网友自拍| 国产在线精品一区在线观看麻豆| 日本欧美视频| 欧美一区二区视频在线观看2022| 国产又爽又黄的激情精品视频| 亚洲美女久久精品| 日韩精品一区二区亚洲av性色| 交视频在线观看国产| 中文字幕无码精品亚洲资源网久久| 日本久久综合| 欧美精品亚洲精品日韩精品| 夜夜夜夜夜夜操| 91l九色lporny| 日韩免费精品| 美女露胸一区二区三区| 日韩伦理在线免费观看| 欧美电影在线观看免费| 国产精品一区高清| 久久国产精品久久精品国产| 日韩一级片网址| 欧美日韩精品免费观看视完整| 黄色毛片网站| 免费特级黄毛片| 高清欧美精品xxxxx在线看| 欧洲精品99毛片免费高清观看| 黄色片网站在线播放| 青青青手机在线视频| 先锋影音亚洲资源| 国产女人18毛片水18精品| 国产精品中文字幕在线观看| 欧美一乱一性一交一视频| 欧美一级二级三级视频| 国产大尺度在线观看| 怡红院一区二区三区| 欧美亚洲激情视频| 四虎www4hu永久免费| 狠狠操狠狠色综合网| 毛片毛片毛片毛片毛片毛片| 色老汉一区二区三区| av在线之家电影网站| 国产乱淫a∨片免费视频| 亚洲男同gay网站| 国产日韩欧美中文在线| 特级片在线观看| 日韩av激情| 91在线网址| 可以免费在线观看的av| 99精品美女视频在线观看热舞| 久久精品国产免费观看99| av一级久久| 欧美日韩一区二区三区四区在线观看| 亚洲高清免费观看| 亚洲精品久久久久久久久久久久久| 91嫩草亚洲精品| 中文字幕在线看视频国产欧美在线看完整| 1204国产成人精品视频| 日本在线播放一区| 亚洲人成网站77777在线观看| 国产露脸国语对白在线| 国内精品免费视频| 欧美一区二区视频免费观看| 亚洲自拍另类综合| 国语对白做受69| 中日韩在线视频| 成黄免费在线|