import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import sun.misc.BASE64Encoder; public class Test { private final static String DES = "DES"; static String data = "299995"; static String key = "123hck321"; public static void main(String[] args) { try { String jiami = encrypt(data, key); System.out.print("加密:" + jiami); byte jiemi[] = decrypt(encrypt(data.getBytes(), key.getBytes()), key.getBytes()); System.err.println("解密: " + new String(jiemi)); } catch (Exception e) { e.printStackTrace(); } } public static String encrypt(String data, String key) throws Exception { // 对string进行BASE64Encoder转换 byte[] bt = encrypt(data.getBytes(), key.getBytes()); BASE64Encoder base64en = new BASE64Encoder(); String strs = new String(base64en.encode(bt)); return strs; } // 加密代码 private static byte[] encrypt(byte[] data, byte[] key) throws Exception { // 生成一个可信任的随机数源 SecureRandom sr = new SecureRandom(); // 从原始密钥数据创建DESKeySpec对象 DESKeySpec dks = new DESKeySpec(key); // 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES); SecretKey securekey = keyFactory.generateSecret(dks); // Cipher对象实际完成加密操作 Cipher cipher = Cipher.getInstance(DES); // 用密钥初始化Cipher对象 cipher.init(Cipher.ENCRYPT_MODE, securekey, sr); return cipher.doFinal(data); } // 解密代码 private static byte[] decrypt(byte[] data, byte[] key) throws Exception { // 生成一个可信任的随机数源 SecureRandom sr = new SecureRandom(); // 从原始密钥数据创建DESKeySpec对象 DESKeySpec dks = new DESKeySpec(key); // 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES); SecretKey securekey = keyFactory.generateSecret(dks); // Cipher对象实际完成解密操作 Cipher cipher = Cipher.getInstance(DES); // 用密钥初始化Cipher对象 cipher.init(Cipher.DECRYPT_MODE, securekey, sr); return cipher.doFinal(data); } }
相关推荐
"java实现文件加密解密" Java 实现文件的加密与解密是指利用 Java 语言将资源文件(包括图片、动画等类型)进行简单的加密和解密。这种策略的原因和好处是将准备好的资源存储在云上,使用时通过网络进行读取即可,...
Java实现的RSA加密解密算法示例 本文主要介绍了Java实现的RSA加密解密算法,结合实例形式分析了Java RSA加密解密算法的相关实现技巧。 知识点1:RSA加密解密算法简介 RSA加密解密算法是一种非对称加密算法,由Ron...
本实例将聚焦于JAVA数据加密解密的实践应用。 首先,让我们理解加密和解密的基本概念。加密是一种将明文(可读信息)转化为密文(不可读信息)的过程,以保护数据不被未经授权的用户访问。解密则是加密的逆过程,将...
在Java中实现RSA加密解密,可以帮助开发者保护敏感信息,例如在网络传输过程中防止数据被窃取。 首先,了解RSA的工作原理至关重要。它基于两个大素数的乘积,生成一对密钥:公钥和私钥。公钥可以公开,用于加密信息...
"java实现的RC4加密解密算法示例" RC4加密解密算法是Symmetric-key block cipher的一种,使用同一个密钥进行加密和解密。java实现的RC4加密解密算法可以通过以下步骤实现: 1. 初始化数组:创建一个大小为256的...
在Java中实现排列码,我们可以利用编程语言的强大功能来设计相应的加密和解密算法。 首先,我们需要理解排列码的原理。排列码通常基于一个固定的编码规则,例如,可以使用数字或字符的某种特定顺序对数据进行编码。...
在Java中实现AES(Advanced Encryption Standard)加密和解密算法主要涉及到对称密钥加密技术。AES算法是一种块密码,采用固定大小的128位(16字节)块进行加密和解密,支持128、192和256位的密钥长度。在给定的代码...
基于Java开发的数据加密解密工具,可对字符串和文件类型进行加密解密,支持AES、DES和3DES三种常用的对称加密算法。
在Java编程语言中,公钥和私钥加密解密是一种重要的安全技术,广泛应用于网络通信、数据传输等领域。本文将详细解析如何使用Java实现公钥和私钥的加解密操作,以及相关的关键概念和代码示例。 首先,我们要了解公钥...
总的来说,理解并正确使用Java实现AES加密和解密,需要注意秘钥的生成、工作模式的选择、填充方式以及字符编码的一致性,这样才能确保数据的安全传输和正确解密。通过实际操作和实践,你可以更深入地掌握这些知识点...
"javaSrc260.zip"文件应该是包含上述加密解密示例的Java源代码,解压后可以查看和学习具体实现。 通过学习和实践这些Java加密解密的实例,你可以更好地理解和掌握如何在实际项目中保护数据安全,提升系统的信息安全...
本话题主要探讨如何在C/C++和Java之间使用基本的字符串和数组操作实现AES加密解密,而不依赖任何额外的加密库。 首先,我们来了解AES加密的基本原理。AES基于块密码,每个数据块为128位,支持128、192和256位的密钥...
Java实现RSA加密解密签名校验是信息安全领域中常见的任务,尤其在数据传输和网络通信中,RSA算法因其非对称性的特点,被广泛应用于数据的加密、解密以及数字签名。下面将详细介绍RSA算法的基本原理,以及如何使用...
本篇文章将详细阐述DES加密解密的Java实现过程。 首先,我们需要了解DES算法的基本原理。DES是一种块密码,它将明文数据分成64位的数据块进行处理,其中包含56位的密钥。通过一系列复杂的置换和代换操作,将明文块...
本篇文章将深入探讨如何在Java中实现AES加密解密,并介绍相关的关键知识点。 首先,我们需要理解AES加密的基本原理。AES是一种块密码,它以固定大小的数据块(128位)为单位进行操作。加密和解密过程都基于一系列...
在实现AES加密解密时,要特别注意错误处理和数据完整性检查。例如,确保文件读取和写入的正确性,以及在解密过程中处理可能的异常。此外,www.willvc.com.cn 提供的资源可能是进一步学习和解决问题的途径。 总之,...
在本文示例中,我们关注的是如何利用Java的Hex编码和解码来处理AES加密和解密的过程。 首先,让我们了解什么是Hex编码。Hex编码是一种将二进制数据转换为可打印字符的表示方式,每个字节被转换为两个十六进制数字...
在Java编程语言中,实现加密和解密是安全领域中的重要任务,主要用于保护数据的隐私性和完整性。本文将深入探讨如何使用Java进行加密和解密操作,主要关注以下几个方面: 1. **加密算法理解** - **对称加密**:如...
这种算法基于大整数因子分解的困难性,被广泛应用于数字签名、数据加密和身份验证。 1. RSA算法基础 RSA算法基于两个大素数p和q的乘积n=p*q,以及欧拉函数φ(n)=(p-1)*(q-1)。选取一个与φ(n)互质的数e作为公钥的...
本文将详细介绍如何在Java环境中实现DES加密和解密。 DES,全称为数据加密标准,基于Feistel密码结构,采用64位的密钥,但其中只有56位是真正参与加密过程的。DES分为两个主要阶段:加密和解密,这两个过程使用相同...