import java.io.ByteArrayOutputStream;
import java.security.Key;
import javax.crypto.Cipher;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
* ���ܽ���
*
* @author weichangyong
*/
public class EncryUtil
{
private final static BASE64Encoder base64encoder = new BASE64Encoder();
private final static BASE64Decoder base64decoder = new BASE64Decoder();
private final static String encoding = "UTF-8";
/**
* �����ַ�
*/
public static String encry(String str)
{
String result = str;
if (str != null && str.length() > 0)
{
try
{
byte[] encodeByte = symmetricEncrypto(str.getBytes(encoding));
result = base64encoder.encode(encodeByte);
}
catch (Exception e)
{
e.printStackTrace();
}
}
return result;
}
/**
* �����ַ�
*/
public static String unEncry(String str)
{
String result = str;
if (str != null && str.length() > 0)
{
try
{
byte[] encodeByte = base64decoder.decodeBuffer(str);
byte[] decoder = EncryUtil.symmetricDecrypto(encodeByte);
result = new String(decoder, encoding);
}
catch (Exception e)
{
e.printStackTrace();
}
}
return result;
}
/**
*
* @param byteSource
* @return ������ܵ����
* @throws Exception
*/
public static byte[] symmetricEncrypto(byte[] byteSource) throws Exception
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try
{
int mode = Cipher.ENCRYPT_MODE;
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
byte[] keyData = { 1, 9, 8, 2, 0, 8, 2, 1 };
DESKeySpec keySpec = new DESKeySpec(keyData);
Key key = keyFactory.generateSecret(keySpec);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(mode, key);
byte[] result = cipher.doFinal(byteSource);
return result;
}
catch (Exception e)
{
throw e;
}
finally
{
baos.close();
}
}
/**
*
* @param byteSource
* @return ������ܵ����
* @throws Exception
*/
public static byte[] symmetricDecrypto(byte[] byteSource) throws Exception
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try
{
int mode = Cipher.DECRYPT_MODE;
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
byte[] keyData = { 1, 9, 8, 2, 0, 8, 2, 1 };
DESKeySpec keySpec = new DESKeySpec(keyData);
Key key = keyFactory.generateSecret(keySpec);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(mode, key);
byte[] result = cipher.doFinal(byteSource);
return result;
}
catch (Exception e)
{
throw e;
}
finally
{
baos.close();
}
}
public static void main(String[] args)
{
String test = "15727364097250141";
String re = encry(test);
System.out.println(re);
String a = "8iNYkkN fT/oAQtCc52mpvgcdQ8jEpSU";
if(a.indexOf(" ")>0)
{
a = a.replace(' ', '+');
}
String un = unEncry(a);
System.out.println(un);
}
}
分享到:
相关推荐
MD5 单向加密 SHA1 单向加密 DES 双向,可解密 加密字符串 ...RSA加密解密及RSA签名和验证 RSA 的密钥产生 产生私钥 和公钥 RSA 方式加密 RSA的解密函数 获取Hash描述表 RSA签名 RSA 签名验证
《易飞用户加密解密详解》 在信息技术领域,数据安全是至关重要的议题,而用户加密解密技术正是保障信息安全的重要手段。本文将围绕“易飞用户加密解密”这一主题,深入探讨其原理、应用及操作流程,帮助读者更好地...
在本文中,我们将深入探讨如何在SpringBoot中实现接口的加密解密统一处理,以及如何通过自定义注解来灵活控制加密解密的执行。 首先,我们创建两个自定义注解,`DecryptRequest`和`EncryptResponse`,用于标识哪些...
DES加密解密算法的C语言实现 DES(Data Encryption Standard)是一种对称密钥 BLOCK 加密算法,使用 56 位密钥对 64 位数据块进行加密。下面是 DES 加密解密算法的 C 语言实现的知识点总结。 字节与二进制转换 在...
URL参数加密解密;使用简便;URL参数加密解密;使用简便;URL参数加密解密;使用简便;URL参数加密解密;使用简便;
这个程序应当包含了上述知识点的具体应用,你可以通过阅读源代码、编译和运行来进一步理解和学习AES加密解密的实现细节。这个实战例程可以帮助开发者更好地掌握Qt环境下的加密解密操作,提高数据安全保护能力。
Java实现的RSA加密解密算法示例 本文主要介绍了Java实现的RSA加密解密算法,结合实例形式分析了Java RSA加密解密算法的相关实现技巧。 知识点1:RSA加密解密算法简介 RSA加密解密算法是一种非对称加密算法,由Ron...
**C# RSA加密解密详解** 在信息安全领域,加密技术是一种至关重要的手段,用于保护数据的隐私和安全性。RSA(Rivest-Shamir-Adleman)算法是一种非对称加密算法,广泛应用于网络通信、数据存储等领域。C#作为.NET...
《深入理解ENC文件加密解密工具:以PrimaSoft Encryption Utility为例》 在信息安全日益重要的今天,文件加密解密工具成为保护数据隐私的关键工具。"ENC文件加密解密工具",特别是PrimaSoft Encryption Utility,是...
标题中的“3DES加密解密工具”指的是一个用于执行三重数据加密标准(3DES,Triple DES)的软件工具,这种工具通常用于保护敏感数据的安全,确保信息在传输过程中的机密性。3DES是DES(Data Encryption Standard,...
经典代码(带详解) 函数authcode($string, $operation, $key, ...第六种 函数encrypt($string,$operation,$key)中$string:需要加密解密的字符串;$operation:判断是加密还是解密,E表示加密,D表示解密;$key:密匙。
本项目"文件加密解密(完整项目)"专注于利用C#进行文件的安全处理,确保数据在传输和存储时的隐私性。 一、C#加密技术基础 C#中实现文件加密主要依赖于.NET Framework提供的加密类库,如System.Security....
"java实现文件加密解密" Java 实现文件的加密与解密是指利用 Java 语言将资源文件(包括图片、动画等类型)进行简单的加密和解密。这种策略的原因和好处是将准备好的资源存储在云上,使用时通过网络进行读取即可,...
本实例将聚焦于JAVA数据加密解密的实践应用。 首先,让我们理解加密和解密的基本概念。加密是一种将明文(可读信息)转化为密文(不可读信息)的过程,以保护数据不被未经授权的用户访问。解密则是加密的逆过程,将...
C# .net MD5加密解密工具及加密解密类。使用方便,可直接下载加密解密代码在项目中使用。
本文将深入探讨“BAT批处理脚本-加密解密-解密.zip”这一主题,以及如何利用它进行文件的加密与解密。 批处理脚本,也称为批处理文件或批处理程序,是Microsoft Windows操作系统中的一种命令行脚本语言。它由一系列...
在这个特定的案例中,"MFC实现文本文件加密解密"是一个使用MFC框架编写的程序,它允许用户对文本文件进行加密和解密操作,确保敏感数据在传输或存储时的安全性。 在VC2010环境下,开发者通常会利用MFC的类库,如...
脚本加密解密器是一种工具,它的主要功能是将脚本代码进行加密处理,以使其在未经授权的情况下无法被轻易读取或理解,同时也能提供解密机制,使得在需要执行时能够正确解读并运行加密后的脚本。 脚本加密通常涉及到...
这个名为"vb.net加密解密源代码"的项目,是利用Visual Studio 2008开发的一个小型应用程序,提供了对数据进行加解密的功能。下面我们将详细探讨相关的知识点。 1. **VB.NET基础**: VB.NET是微软公司开发的一种...
QT C++ AES字符串加密解密类库是一种在C++编程环境中使用QT框架实现的高级加密标准(AES)加密和解密工具。QT是一个流行的开源跨平台应用开发框架,广泛应用于桌面、移动和嵌入式系统。AES是目前广泛应用的对称加密...