Des解密 以及 将。net的DEs加密 用android 的DES解密

.net加密   
/// <summary>
        /// 3DES 加密
        /// </summary>
        /// <param name="input"></param>
        /// <param name="key">密钥(长度24字符)</param>
        /// <param name="coding">Encoding 编码格式</param>
        /// <returns></returns>
        public static string Des3Encrypt(this string input, string key, Encoding coding = null)
        {
            try
            {
                if (coding == null)
                {
                    coding = Encoding.UTF8;
                }
                var data = coding.GetBytes(input);
                var des = new TripleDESCryptoServiceProvider
                {
                    Key = coding.GetBytes(key),
                    Mode = CipherMode.ECB,
                    Padding = PaddingMode.PKCS7
                };
                var cryp = des.CreateEncryptor();
                return Convert.ToBase64String(cryp.TransformFinalBlock(data, 0, data.Length));
            }
            catch
            {
                return null;
            }
        }
android  解密
/**
 * ECB解密,不要IV
 *
 * @param key
 *            密钥
 * @param data
 *            Base64编码的密文
 * @return 明文
 * @throws Exception
 */
public static byte[] ees3DecodeECB(byte[] key, byte[] data)
        throws Exception {
    Key deskey = null;
    DESedeKeySpec spec = new DESedeKeySpec(key);
//用这个DESKeySpec s = new DESKeySpec(key.getBytes())获取失败  不知道原因
    SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede");    deskey = keyfactory.generateSecret(spec);    Cipher cipher = Cipher.getInstance("desede" + "/ECB/PKCS7Padding");    cipher.init(Cipher.DECRYPT_MODE, deskey);    byte[] bOut = cipher.doFinal(data);    return bOut;}
方法调用
byte[] bytes =  Base64.decode(src);// 这个base64用的是org.common.util的base64.


String aa =new String(Des3Decrypt(src,key));

 
还有一种 我没有用到的cbc
 
 
  1.  public static String decryptDES(String decryptString, String decryptKey) throws Exception {  
  2.         byte[] byteMi = new Base64().decode(decryptString);  
  3.         IvParameterSpec zeroIv = new IvParameterSpec(iv);  
  4. //      IvParameterSpec zeroIv = new IvParameterSpec(new byte[8]);  
  5.         SecretKeySpec key = new SecretKeySpec(decryptKey.getBytes(), "DES");  
  6.         Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");  
  7.         cipher.init(Cipher.DECRYPT_MODE, key, zeroIv);  
  8.         byte decryptedData[] = cipher.doFinal(byteMi);  
  9.        
  10.         return new String(decryptedData);  
  11.     }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值