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"主要涉及了两个编程语言——Java和C#之间使用DES(Data Encryption Standard)算法进行加密和解密的实现。DES是一种经典的对称加密算法,它使用一个56位的密钥来对数据进行加密和...
标题中的“java和C#通用des3加解密”指的是在Java和C#这两种不同的编程语言中实现DES(Data Encryption Standard)的加强版——3DES(Triple DES)加解密算法。3DES是一种广泛使用的对称加密算法,通过三次应用DES的...
本话题主要关注如何在C#和Java之间通过RSA和DES加密算法实现数据的安全互通。RSA是一种非对称加密算法,适用于小量数据加密,如密钥交换;而DES是对称加密算法,适合大量数据的快速加密,但安全性相对较低。 首先,...
"JS加密C#解密"的主题涉及前端JavaScript进行数据加密,然后在后端.NET环境中进行解密的技术方案。这种做法的主要目的是确保在网络传输过程中,敏感信息不被窃取或篡改,增强系统的安全性。 首先,我们需要了解...
c#的3DES加密解密强制要求不能使用简单的密钥,这里按照3DES双倍长的算法原理,实现双倍长的加密解密
但需要注意,DES算法的安全性现在被认为较低,对于更高级的安全需求,AES(高级加密标准)通常是个更好的选择。 压缩包中的"环境说明.txt"可能是关于开发环境或运行环境的说明,"VB_DES"和"C_DES"可能是VB.NET和C#...
以上就是C#中使用DES算法进行加密解密的基本步骤和关键知识点。在实际项目中,你可以根据需求对这些代码进行调整,比如添加错误处理、优化性能等。在www.NewXing.com提供的文件中,可能包含了完整的示例代码,供你...
1. DES算法简介: DES是一种块加密算法,它将64位的数据块作为输入,并使用56位的密钥进行加密和解密。经过16轮迭代运算,包括置换、异或和子密钥生成等步骤,将原始数据转换为不可读的密文。由于原始DES的密钥较短...
当您使用DES算法加密文件或文件夹时,您需要先生成一个密钥,这个密钥只有拥有者知道。加密过程会将明文数据(未加密的数据)转换为无法读取的密文,只有使用正确的密钥才能解密回原始内容。在Windows、Linux或Mac等...
本DEMO提供了C#和JAVA两种编程语言下的DES加密和解密实现,这对于理解DES算法及其在实际开发中的应用非常有帮助。 1. **DES算法原理** - **结构**:DES算法基于Feistel网络,它将明文分为左右两半,通过一系列的...
本资源提供了C#语言实现AES与DES加密算法的示例代码,包括加密和解密函数的实现。AES(Advanced Encryption Standard,高级加密标准)和DES(Data Encryption Standard,数据加密标准)都是常用的对称加密算法,广泛...
在前后端交互中,如果前端使用JS加密数据,而后端使用C#解密,需要确保两者的加密参数(密钥和IV)保持一致。同时,由于JS是客户端代码,密钥不应直接暴露在前端,通常的做法是将加密后的数据和密钥的散列值发送到...
本文将深入探讨C#环境下如何实现3DES的加密与解密过程。 3DES是DES(Data Encryption Standard)的一个增强版,它通过三次应用相同的密钥来提高安全性。这种算法的主要思想是将原始的DES加密过程执行三次,增强了...
DES算法主要由以下四个步骤组成:初始置换(IP)、密钥扩展、16轮Feistel网络和逆初始置换(IP^-1)。每轮Feistel网络包括分半、异或、函数F和交换操作。其中,函数F是基于密钥的非线性转换。 在C++中实现DES,可以...
首先,了解DES算法的基础知识。DES是一种块加密算法,每个数据块大小为64位,实际用于加密的有效数据为56位,因为8位用于奇偶校验。它采用了一种称为Feistel网络的结构,通过多次迭代和密钥扩展来完成加密过程。DES...
- **3DES(Triple DES)**: 通过多次使用DES算法来提高安全性。 - **AES(Advanced Encryption Standard)**: 目前最常用的一种对称加密标准,支持128、192和256位的密钥长度。 ##### 2.2 C#中对称加密支持 C#通过`...
标题中的“Delphi7与C#实现Des加解密互通Demo”指的是一个示例项目,该项目旨在演示如何在Delphi 7和C#之间进行DES加密和解密操作,确保两个环境下的数据一致性。全网找遍只此一份,表明这个示例可能比较罕见且具有...
综上所述,C#中的DES加密解密涉及到理解DES算法原理、使用`System.Security.Cryptography.DES`类、设置密钥和初始化向量、执行加密和解密操作等步骤。在实际项目中,需要根据需求选择合适的加密算法并注意安全问题。
- **DES算法**:基于Feistel结构,通过多次迭代实现数据的加密和解密。 - **密钥长度**:DES的密钥长度是56位,但通常表示为64位,其中8位是校验位,不参与加密过程。 2. **C#中的System.Security.Cryptography...
综上所述,"C# DES 3DES AES SM4 PBOC加解密源码"提供了这些加密算法的实现,便于开发者集成到自己的项目中,确保数据在传输和存储时的安全。`EncryptTest.sln`可能是整个解决方案文件,包含了所有项目和配置信息。`...