`

URL参数加密解密

阅读更多
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参数加密解密;使用简便;URL参数加密解密;使用简便;URL参数加密解密;使用简便;

    URL参数加密解密(java版)

    在Java开发中,URL参数加密解密是网络安全的重要环节,特别是在J2EE应用程序中,确保数据传输的安全性至关重要。URL参数通常包含用户敏感信息,如登录凭证、交易详情等,因此需要进行加密处理以防止数据在传输过程中...

    javascript将url中的参数加密解密代码

    `Encrypt` 函数用于加密URL参数,而 `Decrypt` 函数则用于解密已加密的数据。 1. **加密过程**: - 首先,函数检查输入的字符串 `str` 是否为空,如果为空则返回空字符串。 - 接着,使用 `escape` 函数对字符串...

    ASP.NET url参数传递加密及解密方法

    以下是一些关于如何在ASP.NET中进行URL参数加密和解密的关键知识点: 1. **加密需求**:在URL中传递敏感信息时,如用户ID、搜索查询或任何个人信息,必须加密以防止被未授权的第三方截取。这可以通过将明文数据转换...

    jsp加密解密问题.rar

    6. **源代码示例**:在提供的"aa"文件中,可能包含了一段使用Java和JSP实现的URL参数加密解密的代码。通过分析这段代码,我们可以学习如何在实际项目中应用这些加密解密技术,理解其工作原理,并了解如何将它们集成...

    .net c#URL加密

    在提供的"网站url加密解密"文件中,可能包含了实现上述步骤的C#代码示例,可以作为参考学习。实际开发时,应根据项目需求和安全策略选择合适的加密算法和实现方式。 综上所述,URL加密在C#中可以通过多种方式实现,...

    WEB 系统中加密解密URL传输参数

    在上述描述中,提到了一个具体的加密解密基类`Security`,它使用了DES(Data Encryption Standard)加密算法来处理URL传输的参数。DES是一种对称加密算法,它使用相同的密钥进行加密和解密。在这个例子中,类中定义...

    url 传递参数加密问题

    URL参数加密主要用于保护通过URL传递的数据不被轻易截取和篡改。在实际应用中,很多场景下都需要通过URL传递一些敏感信息,如用户登录信息、订单详情等。如果不进行加密处理,这些信息在传输过程中容易被第三方截获...

    URL传参加密

    URL传递参数的一种加密方法,让您的参数不在明文传输

    js url加密解密

    js对文字进行编码及相应的解码函数 传递参数时 进行url跳转时

    Java实现url加密处理的方法示例

    Java中的URL加密处理是网络安全传输数据的一个重要环节,它可以防止敏感信息在传输过程中被窃取或篡改。本文将深入探讨如何使用Java实现URL加密,特别是基于Base64编码和编码转换的方式。我们将重点关注以下几个方面...

    net url加密和解密的方法

    `System.Security.Cryptography.RSACryptoServiceProvider`类提供了RSA加密解密的功能。 三、URL解密 解密是加密的逆过程,通过解密算法和密钥,将加密后的URL参数恢复成原始数据。解密时需确保使用与加密时相同的...

    HTTP:URL加密解密.zip

    以下是一个简单的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在传输过程中可能会暴露敏感信息...在设计和实现这样的系统时,需要充分考虑各种安全因素,以构建一个既高效又安全的URL加密解密方案。

    Spring MVC请求参数与响应结果全局加密和解密详解

    在本文中,我们将详细介绍Spring MVC请求参数与响应结果全局加密和解密的相关知识点,包括请求参数的加密和解密、响应结果的加密和解密、ContentType的处理等。 首先,让我们了解一下请求参数的加密和解密。为了...

    url解码器 用于破解url,加密字符串

    url解码器 用于破解url,加密字符串

    URL参数加密

    因此,“URL参数加密”成为了一种必要的安全实践。 URL参数加密主要有以下几个关键知识点: 1. **加密的目的**:URL参数加密的主要目的是保护用户隐私,防止中间人攻击、数据泄露以及恶意篡改。通过加密,即使数据...

Global site tag (gtag.js) - Google Analytics