Java加密算法:
public static String encrypt(String value) {
String result = "";
try {
value = java.net.URLEncoder.encode(value, "utf-8");
result = toHexString(encrypt(value, PASSWORD_CRYPT_KEY)).toUpperCase();
} catch (Exception ex) {
ex.printStackTrace();
return "";
}
return result;
}
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();
}
public static byte[] encrypt(String message, String key) throws Exception {
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("ASCII"));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
IvParameterSpec iv = new IvParameterSpec(key.getBytes("ASCII"));
cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);
return cipher.doFinal(message.getBytes("UTF-8"));
}
C#解密代码:
// str 待解密的密文字符串
// key 密钥
//解密后明文字符串
public static string Decode(string str, string key)
{
try
{
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8));
provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
byte[] buffer = new byte[str.Length / 2];
for (int i = 0; i < (str.Length / 2); i++)
{
int num2 = Convert.ToInt32(str.Substring(i * 2, 2), 0x10);
buffer[i] = (byte)num2;
}
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
stream2.Write(buffer, 0, buffer.Length);
stream2.FlushFinalBlock();
stream.Close();
return System.Web.HttpUtility.UrlDecode(Encoding.GetEncoding("UTF-8").GetString(stream.ToArray()));
}
catch (Exception) { return "解密失败……"; }
}
分享到:
相关推荐
Java加密C#解密 DES算法.doc
c#的3DES加密解密强制要求不能使用简单的密钥,这里按照3DES双倍长的算法原理,实现双倍长的加密解密
分别用C#、Java实现的RSA和DES加解密算法,包含demo源码,经实际项目验证。
C# DES算法加密解密示例
C#的3DES的加密与解密算法,真正的3DES算法。一个密钥一个向量。
采用des算法,对文件和文件夹进行加密
c++和c#同时实现DES加密解密算法 c++和c#同时实现DES加密解密算法 c++和c#同时实现DES加密解密算法
DES加密算法的C#实现,可以实现加密、解密,如果要加密的字符串的长度不是8的倍数,则进行填补,填补成8的倍数,然后在进行加密。
c#实现des加密解密算法,winform程序,基于.net framework 2.0开发
这篇文章主要介绍了C#的3DES加密解密算法实例代码,有需要的朋友可以参考一下
用C#实现des算法的加密解密算法(非直接引用库)
DES加密解密算法。通过密钥对对字符串进行加密解密操作,64位加密
DES加密算法,JS加密,C#解密,也可以C#加密再用JS进行解密。用于前后端开发的加密算法,最大程度保护数据安全
C#编写的DES、AES、3DES、IDEA加密解密算法实现,内有完整源代码
DES加密/解密类。 加密 加密数据 解密 解密数据 得到随机安全码(哈希加密)。 得到随机哈希加密字符串 哈希加密一个字符串 RSA加密解密及RSA签名和验证 RSA 的密钥产生 产生私钥 和公钥 RSA 方式加密 RSA的解密...
编程环境: Visual Studio 2005, XP系统 C#实现DES加密算法用于重要文件的加密和解密。 说明:可以用于私人重要的或者隐私文件进行加解密,文件格式任意。
C#DES加密解密算法,SHA1加密算法
DES加密解密算法,要的自行下载。
des密码加密与解密算法!根据密匙加密与解密!,密匙自定义值
C# 基于Rijndael加密算法对XML文档加密和解密