类 BangbangCipher
- java.lang.Object
-
- team.bangbang.common.cipher.BangbangCipher
-
public class BangbangCipher extends java.lang.Object数据加密/解密,加密/解密有DES、RSA。此外包含MD5、SHA数据转换,以及二进制数据与十六进制字符串互转- 版本:
- 1.0
- 作者:
- 帮帮组
-
-
字段概要
字段 修饰符和类型 字段 说明 static java.lang.StringMD5MD5加密static java.lang.StringSHA_1SHA-1加密static java.lang.StringSHA1withRSASHA1withRSA加密
-
构造器概要
构造器 构造器 说明 BangbangCipher()
-
方法概要
所有方法 静态方法 具体方法 修饰符和类型 方法 说明 static java.lang.Stringbyte2hex(byte[] data)把二进制数据变为十六进制的字符串。static byte[]decryptDES(byte[] encryptData, byte[] rawKeyData)对给定加密后的数据进行DES解密static byte[]decryptRSA(byte[] encryptData, java.security.PrivateKey privateKey)对给定加密后的数据进行DES解密static byte[]digest(byte[] bts, java.lang.String algorithm)使用消息摘要加密字节数组,消息摘要加密算法包括SHA-1、MD5static byte[]encryptDES(byte[] rowData, byte[] rawKeyData)使用DES算法对给定数据进行加密static byte[]encryptRSA(byte[] rowData, java.security.PublicKey publicKey)使用RSA算法对给定数据进行加密static java.security.KeyPairgetRSAKeyPair()获得RSA密钥对static byte[]hex2byte(java.lang.String value)把十六进制的字符串变为二进制数据。static java.security.PrivateKeyrecoverRSAPrivateKey(java.math.BigInteger modulus, java.math.BigInteger privateExponent)使用钥匙的模数和指数还原私钥static java.security.PublicKeyrecoverRSAPublicKey(java.math.BigInteger modulus, java.math.BigInteger publicExponent)使用钥匙的模数和指数还原公钥static byte[]sign(java.security.PrivateKey privateKey, byte[] data, java.lang.String algorithm)使用私钥对数据进行签名static booleanverifySign(java.security.PublicKey publicKey, byte[] srcData, byte[] signData, java.lang.String algorithm)使用公钥验证签名
-
-
-
方法详细资料
-
encryptDES
public static byte[] encryptDES(byte[] rowData, byte[] rawKeyData) throws java.lang.Exception使用DES算法对给定数据进行加密- 参数:
rowData- 原数据rawKeyData- 密钥,必须为8位字节- 返回:
- 密文
- 抛出:
java.lang.Exception- 加密异常
-
decryptDES
public static byte[] decryptDES(byte[] encryptData, byte[] rawKeyData) throws java.lang.Exception对给定加密后的数据进行DES解密- 参数:
encryptData- 加密后的数据rawKeyData- 密钥,必须为8位字节- 返回:
- 解密后的明文
- 抛出:
java.lang.Exception- 解密异常
-
getRSAKeyPair
public static java.security.KeyPair getRSAKeyPair() throws java.security.NoSuchAlgorithmException获得RSA密钥对- 返回:
- RSA密钥对,内含公钥和私钥。
- 抛出:
java.security.NoSuchAlgorithmException- 算法不存在
-
recoverRSAPublicKey
public static java.security.PublicKey recoverRSAPublicKey(java.math.BigInteger modulus, java.math.BigInteger publicExponent) throws java.security.NoSuchAlgorithmException, java.security.spec.InvalidKeySpecException使用钥匙的模数和指数还原公钥- 参数:
modulus- 公钥模数publicExponent- 公钥指数- 返回:
- 还原后的公钥
- 抛出:
java.security.NoSuchAlgorithmException- 算法不存在java.security.spec.InvalidKeySpecException- 无效的KEY
-
recoverRSAPrivateKey
public static java.security.PrivateKey recoverRSAPrivateKey(java.math.BigInteger modulus, java.math.BigInteger privateExponent) throws java.security.NoSuchAlgorithmException, java.security.spec.InvalidKeySpecException使用钥匙的模数和指数还原私钥- 参数:
modulus- 私钥模数privateExponent- 私钥指数- 返回:
- 还原后的私钥
- 抛出:
java.security.NoSuchAlgorithmException- 算法不存在java.security.spec.InvalidKeySpecException- 无效的KEY
-
encryptRSA
public static byte[] encryptRSA(byte[] rowData, java.security.PublicKey publicKey) throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.spec.InvalidKeySpecException, javax.crypto.NoSuchPaddingException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException使用RSA算法对给定数据进行加密- 参数:
rowData- 原数据publicKey- 用于加密的公钥- 返回:
- 密文
- 抛出:
java.security.InvalidKeyException- 无效的KEYjava.security.NoSuchAlgorithmException- 算法不存在java.security.spec.InvalidKeySpecException- 无效的KEY Specjavax.crypto.NoSuchPaddingException- Padding异常javax.crypto.IllegalBlockSizeException- 字节块大小异常javax.crypto.BadPaddingException- Padding异常
-
decryptRSA
public static byte[] decryptRSA(byte[] encryptData, java.security.PrivateKey privateKey) throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, javax.crypto.NoSuchPaddingException, java.security.spec.InvalidKeySpecException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException对给定加密后的数据进行DES解密- 参数:
encryptData- 加密后的数据privateKey- 解密的私钥- 返回:
- 解密后的明文
- 抛出:
java.security.InvalidKeyException- 无效的KEYjava.security.NoSuchAlgorithmException- 算法不存在java.security.spec.InvalidKeySpecException- 无效的KEY Specjavax.crypto.NoSuchPaddingException- Padding异常javax.crypto.IllegalBlockSizeException- 字节块大小异常javax.crypto.BadPaddingException- Padding异常
-
sign
public static byte[] sign(java.security.PrivateKey privateKey, byte[] data, java.lang.String algorithm) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.SignatureException使用私钥对数据进行签名- 参数:
privateKey- 私钥data- 待签名数据algorithm- 算法,支持SHA1withRSA- 返回:
- 签名
- 抛出:
java.security.NoSuchAlgorithmException- 算法不存在java.security.InvalidKeyException- 无效的KEYjava.security.SignatureException- 签名异常
-
verifySign
public static boolean verifySign(java.security.PublicKey publicKey, byte[] srcData, byte[] signData, java.lang.String algorithm) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.SignatureException使用公钥验证签名- 参数:
publicKey- 公钥srcData- 源数据signData- 签名数据algorithm- 算法,支持SHA1withRSA- 返回:
- true:成功 false:失败
- 抛出:
java.security.NoSuchAlgorithmException- 算法不存在java.security.InvalidKeyException- 无效的KEYjava.security.SignatureException- 签名异常
-
digest
public static byte[] digest(byte[] bts, java.lang.String algorithm)使用消息摘要加密字节数组,消息摘要加密算法包括SHA-1、MD5- 参数:
bts- 要加密的字节数组algorithm- 消息摘要加密算法- 返回:
- 经消息摘要加密后的密文
-
byte2hex
public static java.lang.String byte2hex(byte[] data)
把二进制数据变为十六进制的字符串。- 参数:
data- 二进制数组- 返回:
- 十六进制的字符串
-
hex2byte
public static byte[] hex2byte(java.lang.String value)
把十六进制的字符串变为二进制数据。- 参数:
value- 十六进制的字符串- 返回:
- 二进制数组
-
-