知识大全 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#加密解密字符串 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 首先在nfig
cha138/Article/program/net/201311/14320
Java中3DES加密解密示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在java中调用s
Java中3DES加密解密调用示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在java中调
JAVADES加密解密实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! packagetxlt
Java文件加密-spring属性文件加密 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! pac
漫谈Java加密技术(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 加密解密曾经是我一个毕
Java常用的加密解密数字签名等API 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 常用API
Java加密技术(九) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在Java加密技术(八)中