知识大全 java字符串加密解密

Posted

篇首语:缥帙各舒散,前后互相逾。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 java字符串加密解密相关的知识,希望对你有一定的参考价值。

  java字符串加密解密

  try String test = EncryptionDecryption des = new EncryptionDecryption( tourhb ) // 自定义密钥System out println( 加密前的字符 + test) System out println( 加密后的字符 + des encrypt(test)) System out println( 解密后的字符 + des decrypt(des encrypt(test)))

  System out println( 解密后的字符 + des decrypt( fe c c f d a b d b e ))

   catch (Exception e) e printStackTrace()

  下面是加密解密类的源码

  import java security Key import java security Security

  import javax crypto Cipher

  public class EncryptionDecryption

  private static String strDefaultKey = tourhb

  /** 加密工具 */ private Cipher encryptCipher = null

  /** 解密工具 */ private Cipher decryptCipher = null

  /** * 将byte数组转换为表示 进制值的字符串 如 byte[] 转换为 和public static byte[] * hexStr ByteArr(String strIn) 互为可逆的转换过程* * @param arrB *            需要转换的byte数组* @return 转换后的字符串* @throws Exception * */ public static String byteArr HexStr(byte[] arrB) throws Exception int iLen = arrB length // 每个byte用两个字符才能表示 所以字符串的长度是数组长度的两倍StringBuffer sb = new StringBuffer(iLen * ) for (int i = i < iLen i++) int intTmp = arrB[i] // 把负数转换为正数while (intTmp < ) intTmp = intTmp + // 小于 F的数需要在前面补 if (intTmp < ) sb append( ) sb append(Integer toString(intTmp )) return sb toString()

  /** * 将表示 进制值的字符串转换为byte数组 和public static String byteArr HexStr(byte[] arrB)

  * 互为可逆的转换过程* * @param strIn 需要转换的字符串* @return 转换后的byte数组* @throws Exception * */ public static byte[] hexStr ByteArr(String strIn) throws Exception byte[] arrB = strIn getBytes() int iLen = arrB length

  // 两个字符表示一个字节 所以字节数组长度是字符串长度除以 byte[] arrOut = new byte[iLen / ] for (int i = i < iLen i = i + ) String strTmp = new String(arrB i ) arrOut[i / ] = (byte) Integer parseInt(strTmp ) return arrOut

  /** * 默认构造方法 使用默认密钥* * @throws Exception */ public EncryptionDecryption() throws Exception this(strDefaultKey)

  /** * 指定密钥构造方法* * @param strKey *            指定的密钥* @throws Exception */ public EncryptionDecryption(String strKey) throws Exception Security addProvider(new sun crypto provider SunJCE()) Key key = getKey(strKey getBytes())

  encryptCipher = Cipher getInstance( DES ) encryptCipher init(Cipher ENCRYPT_MODE key)

  decryptCipher = Cipher getInstance( DES ) decryptCipher init(Cipher DECRYPT_MODE key)

  /** * 加密字节数组* * @param arrB *            需加密的字节数组* @return 加密后的字节数组* @throws Exception */ public byte[] encrypt(byte[] arrB) throws Exception return encryptCipher doFinal(arrB)

  /** * 加密字符串* * @param strIn *            需加密的字符串* @return 加密后的字符串* @throws Exception */ public String encrypt(String strIn) throws Exception return byteArr HexStr(encrypt(strIn getBytes()))

  /** * 解密字节数组* * @param arrB *            需解密的字节数组* @return 解密后的字节数组* @throws Exception */ public byte[] decrypt(byte[] arrB) throws Exception return decryptCipher doFinal(arrB)

  /** * 解密字符串* * @param strIn *            需解密的字符串* @return 解密后的字符串* @throws Exception */ public String decrypt(String strIn) throws Exception try return new String(decrypt(hexStr ByteArr(strIn))) catch (Exception e) return

  /** * 从指定字符串生成密钥 密钥所需的字节数组长度为 位 不足 位时后面补 超出 位只取前 位* * @param arrBTmp *            构成该字符串的字节数组* @return 生成的密钥* @throws java lang Exception */ private Key getKey(byte[] arrBTmp) throws Exception // 创建一个空的 位字节数组(默认值为 )

  byte[] arrB = new byte[ ]

  // 将原始字节数组转换为 位for (int i = i < arrBTmp length && i < arrB length i++) arrB[i] = arrBTmp[i]

  // 生成密钥Key key = new javax crypto spec SecretKeySpec(arrB DES )

cha138/Article/program/Java/hx/201311/26933

相关参考

知识大全 字符串加密解密类

  usingSystem;   usingSystemText;   usingSystemSecurityCryptography;   usingSystemIO;

知识大全 Asp.net,C# 加密解密字符串

Asp.net,C#加密解密字符串  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  首先在nfig

知识大全 asp.net2.0加密数据库连接字符串技巧

cha138/Article/program/net/201311/14320

知识大全 Java中3DES加密解密示例

Java中3DES加密解密示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在java中调用s

知识大全 Java中3DES加密解密调用示例

Java中3DES加密解密调用示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在java中调

知识大全 JAVA DES加密解密实现

JAVADES加密解密实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  packagetxlt

知识大全 Java文件加密-spring属性文件加密

Java文件加密-spring属性文件加密  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  pac

知识大全 漫谈Java加密技术(一)

漫谈Java加密技术(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  加密解密曾经是我一个毕

知识大全 Java常用的加密 解密 数字签名等API

Java常用的加密解密数字签名等API  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  常用API

知识大全 Java加密技术(九)

Java加密技术(九)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Java加密技术(八)中