Android 与C# DES+Base64加密的互通
来源:互联网 发布:谢国芳 知乎 编辑:程序博客网 时间:2024/04/30 14:35
java代码: public static String encryptForDES(Stringsouce, String key) throws InvalidKeyException,NoSuchAlgorithmException, InvalidKeySpecException,NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException,UnsupportedEncodingException { //DES算法要求有一个可信任的随机数源 SecureRandom sr = newSecureRandom(); //从原始密匙数据创建DESKeySpec对象 DESKeySpec dks = newDESKeySpec(key.getBytes()); //创建一个密匙工厂,然后用它把DESKeySpec转换成 一个SecretKey对象 SecretKeyFactorykeyFactory = SecretKeyFactory.getInstance("DES"); SecretKey key1 =keyFactory.generateSecret(dks); //Cipher对象实际完成加密操作 Cipher cipher =Cipher.getInstance("DES"); // 用密匙初始化Cipher对象 cipher.init(Cipher.ENCRYPT_MODE, key1, sr); // 现在,获取数据并加密 byte encryptedData[] =cipher.doFinal(souce.getBytes()); //通过BASE64位编码成字符创形式 return newString(Base64.encode(encryptedData, Base64.DEFAULT),"UTF-8"); }
C#代码:
using System.Security.Cryptography;
using System.IO;
// des加密函数
public string Encrypt(string pToEncrypt, string sKey)
{
// 创建des加密没
using (DESCryptoServiceProvider des = newDESCryptoServiceProvider())
{
// 得到UTF-8的数据源
byte[] inputByteArray =Encoding.UTF8.GetBytes(pToEncrypt);
// 设置key和iv密钥
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
//由于java是使用默认加密模式,C#默认是CBC,需要修改为ECB
des.Mode =CipherMode.ECB;
// 创建数据流并进行加密
MemoryStream ms = new MemoryStream();
using (CryptoStream cs = new CryptoStream(ms,des.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
cs.Close();
}
// 关闭数据流
ms.Close();
return Convert.ToBase64String(ms.ToArray());
}
}
- Android 与C# DES+Base64加密的互通
- C#与android使用DES加密图片文件互通
- DES加密算法Delphi与C#互通(CBC加密模式)
- DES加密解密—Android IOS C#互通
- C#与android中DES与base64的相互转换
- 关于JAVA和C#的AES + Base64加密互通!~
- android 的Base64+3DES加密
- Android平台和java平台 DES加密解密互通程序及其不能互通的原因
- Android平台和java平台 DES加密解密互通程序及其不能互通的原因
- Android平台和java平台 DES加密解密互通程序及其不能互通的原因 .
- Android平台和java平台 DES加密解密互通程序及其不能互通的原因 .
- Android平台和java平台 DES加密解密互通程序及其不能互通的原因
- Android平台和java平台 DES加密解密互通程序及其不能互通的原因
- 【代码】Android和java平台 DES加密解密互通程序及其不能互通的原因
- Android平台和java平台 DES加密解密互通程序及其不能互通的原因
- Android平台和java平台 DES加密解密互通程序及其不能互通的原因
- Android平台和java平台 DES加密解密互通程序及其不能互通的原因
- Android RSA加密与解密开发总结(可以与c#的RSA加密解密互通)
- uvalive 5742 TSP
- u-boot中的.balignl 16,0xdeadbeef的理解
- 街区的最短路径 nyist7
- 我的makefile之路-2
- Java多线程之Callable接口(一)
- Android 与C# DES+Base64加密的互通
- hdu 4766 Network
- gcd,lcm模板
- 应用曝光的机会
- 欧拉函数--模板
- 如何在iOS模拟器中添加图片
- 浏览器访问Web服务器流程详细解析
- List (双向链表)
- linux压缩和解压命令详解