import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import net.tarring.common.exception.TarringException;
public class CipherUtil {
/**
* 对字节数组进行摘要运算
*
* @param byteData
* 字节数组源数据
*
* @param algorithm
* 消息摘要加密算法(包括SHA-1、MD5)
*
* @return 经消息摘要加密后的密文
*
* @throws TarringException
*/
public static byte[] digest(byte[] byteData, String algorithm) throws TarringException {
MessageDigest md = null;
byte[] afterEncrypt = null;
try {
md = MessageDigest.getInstance(algorithm);
afterEncrypt = md.digest(byteData);
} catch (NoSuchAlgorithmException e) {
throw new TarringException(e.getMessage(), e);
}
return afterEncrypt;
}
/**
* 对一个字节数组进行AES加密
*
* @param byteSrc
* 字节数组明文
* @param key
* 密钥
*
* @return 字节数组密文
*
* @throws TarringException
*/
public static byte[] encrypt(byte[] byteSrc, SecretKey key) throws TarringException {
try {
Cipher cipher = Cipher.getInstance("AES"); // 创建密码器
cipher.init(Cipher.ENCRYPT_MODE, key); // 初始化
return cipher.doFinal(byteSrc); // 加密
} catch (Exception e) {
throw new TarringException(e.getMessage(), e);
}
}
/**
* 对一个字节数组进行AES解密
*
* @param message
* 字节数组密文
* @param key
* 密钥
*
* @return 字节数组明文
*
* @throws TarringException
*/
public static byte[] decrypt(byte[] message, SecretKey key) throws TarringException {
try {
Cipher cipher = Cipher.getInstance("AES"); // 创建密码器
cipher.init(Cipher.DECRYPT_MODE, key); // 初始化
byte[] ptext = cipher.doFinal(message); // 解密
return ptext;
// String str = new String(ptext, "UTF-8"); // 重新显示明文
} catch (Exception e) {
throw new TarringException(e.getMessage(), e);
}
}
}
分享到:
相关推荐
c#加密解密c#加密解密c#加密解密c#加密解密c#加密解密c#加密解密c#加密解密c#加密解密
URL参数加密解密;使用简便;URL参数加密解密;使用简便;URL参数加密解密;使用简便;URL参数加密解密;使用简便;
经典代码(带详解) 函数authcode($string, $operation, $key, ...第六种 函数encrypt($string,$operation,$key)中$string:需要加密解密的字符串;$operation:判断是加密还是解密,E表示加密,D表示解密;$key:密匙。
C# .net MD5加密解密工具及加密解密类。使用方便,可直接下载加密解密代码在项目中使用。
MD5 单向加密 SHA1 单向加密 DES 双向,可解密 加密字符串 ...RSA加密解密及RSA签名和验证 RSA 的密钥产生 产生私钥 和公钥 RSA 方式加密 RSA的解密函数 获取Hash描述表 RSA签名 RSA 签名验证
# PNG加密解密工具 此工具可以加密和解密PNG图片,保护您的隐私。 ## 加密 1. 选择要加密的PNG图片。 2. 输入密码并确认。 3. 点击“加密”按钮。 4. 保存加密后的PNG图片。 ## 解密 1. 选择要解密的PNG图片。 ...
文件的加密解密,一些流的操作,流的加密....DES;文件的加密解密,一些流的操作,流的加密....DES
自己用c#写的加密解密软件,采用自带组件System.Security.Cryptography,有详细注释,可直接运行看结果,写给不懂加密解密知识的人使用的,不用有加密解密等编程基础,只需添加窗体进自己的程序,然后按照代码注释在...
一般的sqlite3不带加密功能,此包提供加密解密功能,让数据更安全 windows上生成lib,和dll文件放到你的工程下面即可 其他平台如cocos2d-x 移到android上只需将sqlite3secure.c编译到工程里面即可 说明,...
用c#做的加密解密的小软件,可以实现对文本的加密解密。
带加密字符的 加密 解密方法 static string encryptKey = "加密... 自定义加密字符(加密解密必须一致才能解密) /// /// 加密字符串 /// /// name="str">要加密的字符串 /// 加密后的字符串
易飞用户加密解密
DES加密 解密 方法: DESr DESw 支持3DES加密 解密 类中利用函数重载的方式 实现两种加密方式 加密后为16进制字符串 使用方法: 实例化一个对象 然后就可以随便用了。 如 DES加密 解密 CString sd,sd2; yxyDES2 ...
一个调用动态链接库的des加密解密例子。
加密解密支持库|加密解密支持库
主要为大家详细介绍了SpringBoot接口加密解密统一处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
--sunfruit 关于加密解密的理论知识已经不少了,这里只给出一个加密解密以及生成key的源代码,给大家参考
对txt文件的加密解密,采用c++编写。
用C语言实现的AES加密解密算法,用C语言实现的AES加密解密算法
300多种加密解密算法(C++)源代码 300多种加密解密算法(C++)源代码