看过网上许多这种Java和.net交叉加密解密的方法,杂七杂八的,让人看得很不明了,经过整理和调试后,决定把代码贴上来,一来提供给有需要的朋友作参考,二来给自己留下个脚印,以免以后有用得着的地方。我不知道这种加密解密的安全性可靠还是不可靠,但至少实现了Java和C#.net的交叉加密解密方法,代码如下:
Java类:
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;
public class DESCryptUtil {
private static final String key = "20100728";
// 解密数据
public static String decrypt(String message) throws Exception {
byte[] bytesrc = stringToBytes(message);
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8"));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
IvParameterSpec iv = new IvParameterSpec(key.getBytes("UTF-8"));
cipher.init(Cipher.DECRYPT_MODE, secretKey, iv);
byte[] retByte = cipher.doFinal(bytesrc);
return new String(retByte, "UTF-8");
}
//加密数据
public static byte[] encrypt(String message) throws Exception {
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8"));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
IvParameterSpec iv = new IvParameterSpec(key.getBytes("UTF-8"));
cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);
return cipher.doFinal(message.getBytes("UTF-8"));
}
//String转Byte数组
public static byte[] stringToBytes(String temp) {
byte digest[] = new byte[temp.length() / 2];
for (int i = 0; i < digest.length; i++) {
String byteString = temp.substring(2 * i, 2 * i + 2);
int byteValue = Integer.parseInt(byteString, 16);
digest[i] = (byte) byteValue;
}
return digest;
}
//Byte数组转String
public static String bytesToString(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 void main(String[] args) throws Exception {
String key = "20100728";
String value = "阿\"飞";
System.out.println("加密的数据:" + value);
String a = bytesToString(encrypt(value)).toUpperCase();
System.out.println("加密后的数据:" + a);
String b = decrypt(a);
System.out.println("解密后的数据:" + b);
System.out.println(b.length());
}
}
分享到:
相关推荐
DES加密方法JAVA和C#交叉加密解密代码
总结,Java和C#之间使用DES加密解密涉及密钥生成、数据分块、加密解密过程以及编码解码等步骤。为了实现跨平台的兼容性,必须确保所有参数和设置的一致性,包括密钥、IV、填充方式以及加密模式。在实际应用中,还...
标题中的“java和C#通用des3加解密”指的是在Java和C#这两种不同的编程语言中实现DES(Data Encryption Standard)的加强版——3DES(Triple DES)加解密算法。3DES是一种广泛使用的对称加密算法,通过三次应用DES的...
本话题主要关注如何在C#和Java之间通过RSA和DES加密算法实现数据的安全互通。RSA是一种非对称加密算法,适用于小量数据加密,如密钥交换;而DES是对称加密算法,适合大量数据的快速加密,但安全性相对较低。 首先,...
综上所述,C#中的DES加密解密涉及到理解DES算法原理、使用`System.Security.Cryptography.DES`类、设置密钥和初始化向量、执行加密和解密操作等步骤。在实际项目中,需要根据需求选择合适的加密算法并注意安全问题。
C#DES标准ECB加密解密示例源码,根据标准的C改的源码,与网上所搜索到的完全不一样,可以支持中文为密钥的加密,也可以支持为中文字符串的加密,如,密钥为:替天行道,明文为:来自替天行道的C#DES标准ECB加密解密...
这个DEMO是一个很好的学习资源,可以帮助开发者理解和实践DES加密解密技术,同时也可以作为不同语言间加密解密兼容性的参考示例。在实际项目中,由于DES的安全性相对较低,现在更多使用更安全的AES(Advanced ...
C#与JAVA通用DES: 1、C#平台上的加密与解密 2、JAVA平台上的加密与解密 3、C#平台上的加密,能在JAVA平台上解密 4、JAVA平台上的加密,能在C#平台上解密 这个工具类,是基于平台的,不调用任何第三方软件,已经运用...
### Java与C#中的DES加密解密技术 #### 一、概述 在现代软件开发中,数据的安全性至关重要。为了确保数据在传输过程中的安全,加密技术被广泛应用。其中,数据加密标准(Data Encryption Standard,简称DES)是一...
DES(Data Encryption Standard)是一种对称加密算法,它使用相同的密钥进行加密和解密。在前端,JavaScript可以用于实现DES加密,通常通过内置的Web Cryptography API或者第三方库如CryptoJS。在后端,VB.NET和C#都...
这个"文件加密解密(完整项目)"提供了一个可以直接编译运行的解决方案,对于学习和实践C#文件加密技术具有很高的参考价值。通过理解和实践该项目,开发者可以深入理解加密解密原理,提升数据保护能力。
在本文中,我们将深入探讨DES加密解密算法,并展示如何在C++和C#这两种编程语言中实现这一算法。 首先,理解DES的工作原理至关重要。DES算法主要由以下四个步骤组成:初始置换(IP)、密钥扩展、16轮Feistel网络和...
根据给定文件的信息,我们可以总结出关于C#中几种常用加密...通过以上代码示例,我们了解了如何在C#中实现DES加密解密、MD5和SHA256散列函数。这些技术在实际开发中非常有用,尤其是在保护用户数据的安全性和隐私方面。
MD5 单向加密 SHA1 单向加密 DES 双向,可解密 加密字符串 ...RSA加密解密及RSA签名和验证 RSA 的密钥产生 产生私钥 和公钥 RSA 方式加密 RSA的解密函数 获取Hash描述表 RSA签名 RSA 签名验证
本文将深入探讨C#编程语言中用于数据加密解密的三种主要算法:DES、3DES以及AES,并结合描述中的信息,为您提供关于这些算法的基础知识和如何在C#环境中实现它们。 **DES(Data Encryption Standard)** DES是一种...
总的来说,使用C#和DES进行文件加密解密是一个涉及多个步骤的过程,包括创建加密对象、设置密钥和IV、创建流对象、创建加密或解密流、读写文件以及关闭流。在现代安全需求下,虽然DES可能不是最安全的选择,但理解其...
### C#中的加密解密类:DES、3DES与MD5 #### 一、概述 在C#中,实现数据加密解密的功能是确保信息安全的关键技术之一。本篇将详细介绍如何利用C#来实现DES(Data Encryption Standard)、3DES(Triple Data ...
DES加密解密算法。通过密钥对对字符串进行加密解密操作,64位加密