public class Security3DES { private static final String Algorithm = "DESede"; //定义 加密算法,可用 DES,DESede,Blowfish /** * @Title: encryptData * @Description: 加密 * @param cryptKey 密钥 * @param src * @return */ public static byte[] encryptData(String cryptKey, byte[] src) { try { //添加新安全算法,如果用JCE就要把它添加进去 //Security.addProvider(new com.sun.crypto.provider.SunJCE()); SecretKey deskey = new SecretKeySpec(build3DesKey(cryptKey), Algorithm); Cipher cip = Cipher.getInstance(Algorithm); cip.init(Cipher.ENCRYPT_MODE, deskey); return cip.doFinal(src); } catch (java.security.NoSuchAlgorithmException e1) { e1.printStackTrace(); } catch (javax.crypto.NoSuchPaddingException e2) { e2.printStackTrace(); } catch (java.lang.Exception e3) { e3.printStackTrace(); } return null; } /** * @Title: decryptData * @Description: 解密 * @param cryptKey 密钥 * @param src * @return */ public static byte[] decryptData(String cryptKey, byte[] src) { try { SecretKey deskey = new SecretKeySpec(build3DesKey(cryptKey),Algorithm); Cipher cip = Cipher.getInstance(Algorithm); cip.init(Cipher.DECRYPT_MODE, deskey); return cip.doFinal(src); } catch (java.security.NoSuchAlgorithmException e1) { e1.printStackTrace(); } catch (javax.crypto.NoSuchPaddingException e2) { e2.printStackTrace(); } catch (java.lang.Exception e3) { e3.printStackTrace(); } return null; } /** * @Title: build3DesKey * @Description: 将key转为24位byte * @param keyStr * @return * @throws UnsupportedEncodingException */ public static byte[] build3DesKey(String keyStr) throws UnsupportedEncodingException { byte[] key = new byte[24]; byte[] temp = keyStr.getBytes("UTF-8"); if (key.length > temp.length) { System.arraycopy(temp, 0, key, 0, temp.length); } else { System.arraycopy(temp, 0, key, 0, key.length); } return key; } public static void main(String[] args){ try { String keyBytes = "012345678901234567890123"; String szSrc = "This is a 3DES test. 测试"; System.out.println("加密前的字符串:" + szSrc); byte[] encoded = encryptData(keyBytes, szSrc.getBytes()); BASE64Encoder enc = new BASE64Encoder(); String cipherString = enc.encode(encoded); System.out.println("加密后的字符串:" + cipherString); BASE64Decoder base64 = new BASE64Decoder(); byte[] byStr = base64.decodeBuffer(cipherString); byte[] srcBytes = decryptData(keyBytes, byStr); System.out.println("解密后的字符串:" + (new String(srcBytes))); } catch (IOException e) { e.printStackTrace(); } }
相关推荐
3DES(Triple DES),全称为三重DES,是为了解决DES的密钥长度不足而设计的。3DES实际上是将DES执行三次加密过程,以提高安全性。它使用两个或三个独立的56位密钥,通过以下步骤进行操作: 1. 第一次加密:用第一个...
3DES 算法计算 MAC 3DES 算法是一种基于对称加密的算法,使用双倍长密钥来计算工作密钥、PIN 密钥和 MAC 值。下面是关于 3DES 算法计算 MAC 的知识点: 1. 什么是 3DES 算法? 3DES 算法是基于 DES 算法的一种...
本文将深入探讨C#中实现的四种主要加密算法:DES、3DES、AES以及SM4,并结合PBOC(中国金融智能卡)标准算法进行讨论。这些源码可用于创建动态库,为实际项目提供安全的数据保护功能。 1. **DES(Data Encryption ...
C#作为.NET框架的一部分,可以使用`System.Security.Cryptography`命名空间中的`TripleDESCryptoServiceProvider`类来实现3DES。这个类提供了便捷的方法来设置密钥和初始化向量(IV),以及加密和解密数据。开发者...
- **System.Security.Cryptography.TripleDESCryptoServiceProvider**:这是.NET框架提供的3DES加密服务类,通过实例化它可以获取到3DES加密器对象。 - **CreateEncryptor()** 和 **CreateDecryptor()**:这两个方法...
标题中的“java和C#通用des3加解密”指的是在Java和C#这两种不同的编程语言中实现DES(Data Encryption Standard)的加强版——3DES(Triple DES)加解密算法。3DES是一种广泛使用的对称加密算法,通过三次应用DES的...
RSA加密和3DES加解密是两种常见的对称与非对称加密算法,在信息安全领域有着广泛应用。在JAVA环境中,这两种加密技术提供了数据保护的重要手段,确保了敏感信息在网络传输过程中的安全。 首先,RSA(Rivest-Shamir-...
jdk 3des decrypt : cakin24 security 3des 结论 本文主要介绍了Java实现的对称加密算法3DES定义与用法示例,介绍了3DES的定义、好处、相关参数和代码实现。希望本文能够帮助读者更好地理解3DES算法。
Java加密技术是保护数据安全的重要工具,涉及到的主要算法有AES、DES、3DES、RSA和DSA。这些算法在信息安全领域有着广泛的应用,如数据传输、密码存储、数字签名等。以下将详细介绍这些加密算法的原理及Java中的实现...
加密方法: com.linkage.security.SecurityManager.Encrypt3DES(content, key); 解密方法: com.linkage.security.SecurityManager.Decrypt3DES(content, key)
3DES,全称为Triple DES,是DES的加强版,通过三次加密过程增强了安全性。在Java编程环境中,我们可以利用Java Cryptography Extension (JCE) API来实现DES和3DES的加密与解密操作。 DES算法基于Feistel结构,它将...
在C#中,我们可以使用`System.Security.Cryptography`命名空间下的`TripleDESCryptoServiceProvider`类来实现3DES加密和解密。以下是一个基本的3DES加密解密函数示例: ```csharp using System; using System.Text;...
Java中的3DES(Triple Data Encryption Standard)是一种强化的DES(Data Encryption Standard)加密算法,它通过将DES加密过程执行三次来提高安全性。3DES在现代密码学中被广泛使用,尤其是在需要兼容旧系统或者...
3DES(Triple DES)是一种广泛使用的对称加密算法,全称为三重数据加密标准,是DES(Data Encryption Standard)的加强版本。DES由于其56位的密钥长度在现代密码学标准下被认为不够安全,因此3DES应运而生,通过三次...
**3DES(Triple DES)**,全称为三重数据加密标准,是DES(Data Encryption Standard)的加强版,为了应对DES的56位密钥长度可能被破解的问题,3DES采用了三次加密过程,大大增强了其安全性。3DES实际上是对DES进行...
VB.NET内建的`System.Security.Cryptography`命名空间提供了实现3DES加密的类——`TripleDESCryptoServiceProvider`。 3DES,全称为三重DES,实际上是三次应用DES算法,以提供更强的安全性。它通过使用两个或三个...
尽管3DES已经相对过时,但仍在一些旧系统和协议中使用,例如TLS(Transport Layer Security)的早期版本,以及一些银行系统和无线通信标准。然而,由于其较慢的速度和较低的效率,现在更倾向于使用AES等现代加密算法...
在C#中,可以使用`System.Security.Cryptography`命名空间下的`DESCryptoServiceProvider`类来实现DES的加密和解密。 **3DES(Triple DES)** 为了弥补DES的弱点,3DES应运而生。3DES是通过三次应用DES算法来增加...
3DES,全称为Triple Data Encryption Algorithm(三重数据加密算法),是DES(Data Encryption Standard)的一个增强版本,为了解决DES的密钥长度过短(56位)而设计的一种加密算法。在21世纪初,由于计算能力的飞速...
在 C# 中,可以利用 `System.Security.Cryptography` 命名空间中的 `TripleDESCryptoServiceProvider` 类来实现 DES3 的加密解密功能。下面分别介绍加密与解密的实现方法。 ##### 3.1 加密方法 ```csharp public ...