FROM:http://blog.csdn.net/fan_zhen_hua/archive/2008/09/23/2969348.aspx
package cn;
import java.security.Key;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
public class Arithmetic {
static Key key;
/**
* 根据参数生成KEY
*
* @param strKey
*/
public static void getKey(String strKey) {
try {
KeyGenerator _generator = KeyGenerator.getInstance("DES");
_generator.init(new SecureRandom(strKey.getBytes()));
key = _generator.generateKey();
_generator = null;
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 加密String明文输入,String密文输出
*
* @param strMing
* @return
*/
public static String getEncString(String strMing) {
byte[] byteMi = null;
byte[] byteMing = null;
String strMi = "";
try {
return byte2hex(getEncCode(strMing.getBytes()));
// byteMing = strMing.getBytes("UTF8");
// byteMi = this.getEncCode(byteMing);
// strMi = new String( byteMi,"UTF8");
} catch (Exception e) {
e.printStackTrace();
} finally {
byteMing = null;
byteMi = null;
}
return strMi;
}
/**
* 解密 以String密文输入,String明文输出
*
* @param strMi
* @return
*/
public static String getDesString(String strMi) {
byte[] byteMing = null;
byte[] byteMi = null;
String strMing = "";
try {
return new String(getDesCode(hex2byte(strMi.getBytes())));
// byteMing = this.getDesCode(byteMi);
// strMing = new String(byteMing,"UTF8");
} catch (Exception e) {
e.printStackTrace();
} finally {
byteMing = null;
byteMi = null;
}
return strMing;
}
/**
* 加密以byte[]明文输入,byte[]密文输出
*
* @param byteS
* @return
*/
private static byte[] getEncCode(byte[] byteS) {
byte[] byteFina = null;
Cipher cipher;
try {
cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key);
byteFina = cipher.doFinal(byteS);
} catch (Exception e) {
e.printStackTrace();
} finally {
cipher = null;
}
return byteFina;
}
/**
* 解密以byte[]密文输入,以byte[]明文输出
*
* @param byteD
* @return
*/
private static byte[] getDesCode(byte[] byteD) {
Cipher cipher;
byte[] byteFina = null;
try {
cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, key);
byteFina = cipher.doFinal(byteD);
} catch (Exception e) {
e.printStackTrace();
} finally {
cipher = null;
}
return byteFina;
}
/**
* 二行制转字符串
*
* @param b
* @return
*/
public static String byte2hex(byte[] b) { // 一个字节的数,
// 转成16进制字符串
String hs = "";
String stmp = "";
for (int n = 0; n < b.length; n++) {
// 整数转成十六进制表示
stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
if (stmp.length() == 1)
hs = hs + "0" + stmp;
else
hs = hs + stmp;
}
return hs.toUpperCase(); // 转成大写
}
public static byte[] hex2byte(byte[] b) {
if ((b.length % 2) != 0)
throw new IllegalArgumentException("长度不是偶数");
byte[] b2 = new byte[b.length / 2];
for (int n = 0; n < b.length; n += 2) {
String item = new String(b, n, 2);
// 两位一组,表示一个字节,把这样表示的16进制字符串,还原成一个进制字节
b2[n / 2] = (byte) Integer.parseInt(item, 16);
}
return b2;
}
public static void main(String[] args) {
Arithmetic des = new Arithmetic();// 实例化一个对像
des.getKey("aadd");// 生成密匙
String strEnc = des.getEncString("樊振华");// 加密字符串,返回String的密文
System.out.println(strEnc);
String strDes = des.getDesString(strEnc);// 把String 类型的密文解密
System.out.println(strDes);
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fan_zhen_hua/archive/2008/09/23/2969348.aspx
分享到:
相关推荐
URL参数加密解密;使用简便;URL参数加密解密;使用简便;URL参数加密解密;使用简便;URL参数加密解密;使用简便;
在Java开发中,URL参数加密解密是网络安全的重要环节,特别是在J2EE应用程序中,确保数据传输的安全性至关重要。URL参数通常包含用户敏感信息,如登录凭证、交易详情等,因此需要进行加密处理以防止数据在传输过程中...
`Encrypt` 函数用于加密URL参数,而 `Decrypt` 函数则用于解密已加密的数据。 1. **加密过程**: - 首先,函数检查输入的字符串 `str` 是否为空,如果为空则返回空字符串。 - 接着,使用 `escape` 函数对字符串...
以下是一些关于如何在ASP.NET中进行URL参数加密和解密的关键知识点: 1. **加密需求**:在URL中传递敏感信息时,如用户ID、搜索查询或任何个人信息,必须加密以防止被未授权的第三方截取。这可以通过将明文数据转换...
6. **源代码示例**:在提供的"aa"文件中,可能包含了一段使用Java和JSP实现的URL参数加密解密的代码。通过分析这段代码,我们可以学习如何在实际项目中应用这些加密解密技术,理解其工作原理,并了解如何将它们集成...
在提供的"网站url加密解密"文件中,可能包含了实现上述步骤的C#代码示例,可以作为参考学习。实际开发时,应根据项目需求和安全策略选择合适的加密算法和实现方式。 综上所述,URL加密在C#中可以通过多种方式实现,...
在上述描述中,提到了一个具体的加密解密基类`Security`,它使用了DES(Data Encryption Standard)加密算法来处理URL传输的参数。DES是一种对称加密算法,它使用相同的密钥进行加密和解密。在这个例子中,类中定义...
URL参数加密主要用于保护通过URL传递的数据不被轻易截取和篡改。在实际应用中,很多场景下都需要通过URL传递一些敏感信息,如用户登录信息、订单详情等。如果不进行加密处理,这些信息在传输过程中容易被第三方截获...
URL传递参数的一种加密方法,让您的参数不在明文传输
js对文字进行编码及相应的解码函数 传递参数时 进行url跳转时
Java中的URL加密处理是网络安全传输数据的一个重要环节,它可以防止敏感信息在传输过程中被窃取或篡改。本文将深入探讨如何使用Java实现URL加密,特别是基于Base64编码和编码转换的方式。我们将重点关注以下几个方面...
`System.Security.Cryptography.RSACryptoServiceProvider`类提供了RSA加密解密的功能。 三、URL解密 解密是加密的逆过程,通过解密算法和密钥,将加密后的URL参数恢复成原始数据。解密时需确保使用与加密时相同的...
以下是一个简单的C# AES加密URL参数的例子: ```csharp using System; using System.Text; using System.Security.Cryptography; public static string Encrypt(string plainText, byte[] key, byte[] iv) { ...
在互联网通信中,URL(统一资源定位符)是用于定位网络资源的重要部分。然而,URL在传输过程中可能会暴露敏感信息...在设计和实现这样的系统时,需要充分考虑各种安全因素,以构建一个既高效又安全的URL加密解密方案。
在本文中,我们将详细介绍Spring MVC请求参数与响应结果全局加密和解密的相关知识点,包括请求参数的加密和解密、响应结果的加密和解密、ContentType的处理等。 首先,让我们了解一下请求参数的加密和解密。为了...
url解码器 用于破解url,加密字符串
因此,“URL参数加密”成为了一种必要的安全实践。 URL参数加密主要有以下几个关键知识点: 1. **加密的目的**:URL参数加密的主要目的是保护用户隐私,防止中间人攻击、数据泄露以及恶意篡改。通过加密,即使数据...