C#与android中DES与base64的相互转换
来源:互联网 发布:数据对比分析 编辑:程序博客网 时间:2024/05/21 06:31
DES相互转换
C#
public static string Decrypt(string pToDecrypt, string sKey) { DESCryptoServiceProvider provider = new DESCryptoServiceProvider(); byte[] buffer = new byte[pToDecrypt.Length / 2]; for (int i = 0; i < (pToDecrypt.Length / 2); i++) { int num2 = Convert.ToInt32(pToDecrypt.Substring(i * 2, 2), 0x10); buffer[i] = (byte) num2; } provider.Key = Encoding.ASCII.GetBytes(sKey); provider.IV = Encoding.ASCII.GetBytes(sKey); MemoryStream stream = new MemoryStream(); CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write); stream2.Write(buffer, 0, buffer.Length); stream2.FlushFinalBlock(); new StringBuilder(); return Encoding.GetEncoding("GBK").GetString(stream.ToArray()); } public static string Encrypt(string pToEncrypt, string sKey) { DESCryptoServiceProvider provider = new DESCryptoServiceProvider(); byte[] bytes = Encoding.GetEncoding("GBK").GetBytes(pToEncrypt); provider.Key = Encoding.ASCII.GetBytes(sKey); provider.IV = Encoding.ASCII.GetBytes(sKey); MemoryStream stream = new MemoryStream(); CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write); stream2.Write(bytes, 0, bytes.Length); stream2.FlushFinalBlock(); StringBuilder builder = new StringBuilder(); foreach (byte num in stream.ToArray()) { builder.AppendFormat("{0:X2}", num); } return builder.ToString(); }
java
/** * 解密 * @param message * @param key * @return * @throws Exception */public static String decrypt(String message,String encoding) throws Exception {byte[] bytesrc = convertHexString(message);Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");DESKeySpec desKeySpec = new DESKeySpec(key.getBytes(encoding));SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey secretKey = keyFactory.generateSecret(desKeySpec);IvParameterSpec iv = new IvParameterSpec(key.getBytes(encoding));cipher.init(Cipher.DECRYPT_MODE, secretKey, iv);byte[] retByte = cipher.doFinal(bytesrc);return new String(retByte,encoding);}/** * 加密 * @param message * @param key * @return * @throws Exception */public static String encrypt(String message,String encoding) throws Exception {Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");DESKeySpec desKeySpec = new DESKeySpec(key.getBytes(encoding));SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey secretKey = keyFactory.generateSecret(desKeySpec);IvParameterSpec iv = new IvParameterSpec(key.getBytes(encoding));cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);byte[] buf = cipher.doFinal(message.getBytes(encoding));String a = toHexString(buf).toUpperCase();return a;}/** * 字符串转换为16进制数组 * @param ss * @return */public static byte[] convertHexString(String ss) {byte digest[] = new byte[ss.length() / 2];for (int i = 0; i < digest.length; i++) {String byteString = ss.substring(2 * i, 2 * i + 2);int byteValue = Integer.parseInt(byteString, 16);digest[i] = (byte) byteValue;}return digest;}/** * 16进制数组转换为字符串 * @param b * @return */public static String toHexString(byte b[]) {StringBuffer hexString = new StringBuffer();for (int i = 0; i < b.length; i++) {String plainText = Integer.toHexString(0xff & b[i]);if (plainText.length() < 2)plainText = "0" + plainText;hexString.append(plainText);}return hexString.toString();}
BASE64
C#
byte[] srcBuf = Encoding.GetEncoding("GBK").GetBytes(txtPlain.Text);txtEnc.Text = Convert.ToBase64String(srcBuf, 0, srcBuf.Length);byte[] buffer3 = Convert.FromBase64String(data);
java
byte[] enc = Base64.encode(encText.getBytes(encoding), Base64.DEFAULT);byte[] bytesrc = Base64.decode(encText.getBytes(encoding), Base64.DEFAULT);
0 0
- C#与android中DES与base64的相互转换
- Android 与C# DES+Base64加密的互通
- 图片与base64之间的相互转换
- C#操作图片与BASE64之间的相互转换适应于网页中不能引用路径的情况
- Base64与byte[]相互转换
- 图片 与base64相互转换
- Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换
- java之文件与base64字符之间的相互转换
- java之文件与base64字符之间的相互转换
- java之文件与base64字符之间的相互转换
- java之文件与base64字符之间的相互转换
- 录音文件与Base64编码相互转换的方法
- 录音文件与Base64编码相互转换的方法
- C# 中 json对象与字符串的相互转换
- c#中byte[]与string的相互转换
- C#中子类与父类的相互转换
- C#中char类型与string类型的相互转换
- C#中子类与父类的相互转换
- 14条最佳JS代码编写技巧
- ie下get请求不起作用
- SVM
- 互联网协议基本介绍 (2)
- JavaScript中的单例模式
- C#与android中DES与base64的相互转换
- 高斯日记
- 程序员10大境界
- IOS内存管理示例代码
- 你必须非常努力,才能看起来毫不费力!
- NYOJ663 弟弟的作业
- CentOS查看树形目录命令tree的安装
- 女人,是不是非要让爱情占据你的一切?
- jquery中获得table中第几个td元素的值