加密与解密

1、MD5

String md5(String str)

String md5(byte[] str)//字节流

Sring md5f(String filepath)//计算文件的MD5值

 

2、SHA

String sha(String str);//默认128位

String sha(byte[] str);//字节流,默认128位

String sha1(String str);//128位

String sha1(byte[] str);//字节流,128位

String sha2(String str);//256位

String sha2(byte[] str);//字节流,256位

String sha3(String str);//384位

String sha3(byte[] str);//字节流,384位

String sha5(String str);//512位

String sha5(byte[] str);//字节流,512位

String sha(String str,int bit)//bit 为256 384 512

String sha(byte[] str,int bit)//bit 为256 384 512

String shaf(String filepath)//计算文件的SHA1值

String shaf(String filepath,int bit)//计算文件的SHA1 SHA256 SHA384 SHA512值 bit 为1 256 384 512

 

3、RSA

密钥生成:

HashMap<String,String> rsaGenerateKey()//privatekey,publickey 默认1024位

HashMap<String,String> rsaGenerateKey(int keysize)//privatekey,publickey,keysize值是512-65536之间,必须是64的倍数

/*

值得注意的是,如果选择密钥是1024bit长的,那么支持加密的明文长度字节最多只能是1024/8=128byte;

 

*/

 

密钥转换:

String rsaPrikey2pem(String prikey)//rsa私钥转换成pem格式

String rsaPubkey2pem(String pubkey)//rsa公钥转换成pem格式

String[] rsakey2pem(String prikey,String pubkey)//rsa密钥转换成pem格式,返回数组0的值是公钥,1的值是私钥

 

加密:

byte[] rsaEncode(String pubkey,String str)//pubkey为base64编码

byte[] rsaEncode(String pubkey,byte[] str)

byte[] rsaEncode(byte[] pubkey,byte[] str)

 

解密:

String rsaDecode(String prikey,String enstr) //prikey,enstr均为base64编码

String rsaDecode(String prikey,byte[] enstr)
String rsaDecode(byte[] prikey,byte[] enstr)

byte[] rsaDecodeBytes(String prikey,String enstr)

byte[] rsaDecodeBytes(String prikey,byte[] enstr)

byte[] rsaDecodeBytes(byte[] prikey,byte[] enstr)

 

签名与验签:

String RsaSignMd5(String src,String privateKeyEnc)// 签名方式:MD5withRSA src:签名字符串,privateKeyEnc:私钥

boolean RsaVerifyMd5(String src, String result,String publicKeyEnc)//验签 src:签名原字符串,result:签名,publicKeyEnc:公钥

 

String RsaSignSha1(String src,String privateKeyEnc)// 签名方式:SHA1withRSA src:签名字符串,privateKeyEnc:私钥

boolean RsaVerifySha1(String src, String result,String publicKeyEnc)//验签 src:签名原字符串,result:签名,publicKeyEnc:公钥

 

String RsaSignSha2(String src,String privateKeyEnc)// 签名方式:SHA256withRSA src:签名字符串,privateKeyEnc:私钥

boolean RsaVerifySha2(String src, String result,String publicKeyEnc)//验签 src:签名原字符串,result:签名,publicKeyEnc:公钥

 

String RsaSignSha3(String src,String privateKeyEnc)// 签名方式:SHA384withRSA src:签名字符串,privateKeyEnc:私钥

boolean RsaVerifySha3(String src, String result,String publicKeyEnc)//验签 src:签名原字符串,result:签名,publicKeyEnc:公钥

 

String RsaSignSha5(String src,String privateKeyEnc)// 签名方式:SHA512withRSA src:签名字符串,privateKeyEnc:私钥

boolean RsaVerifySha5(String src, String result,String publicKeyEnc)//验签 src:签名原字符串,result:签名,publicKeyEnc:公钥

 

4、DES(注:此加密方式为本框架定制专用,不能通用)

说明:

 * DES的密钥(key)长度是为8个字节,加密解密的速度是最快的
 * DESede的密钥(key)长度是24个字节,即3DES
 * AES的密钥(key)长度是16个字节
 * BlowFish的密钥(key)长度是可变的(1<=key<=16),加密最快,强度最高

 

加密:

byte[] desEncode(String str,String key)//默认以DES方式加密

byte[] desEncode(String data,String key,String algorithm)//algorithm: 加密方式,值必须为 DES | DESede | Blowfish | AES 之一,下同

byte[] desEncodeBytes(byte[] data,String key)

byte[] desEncodeBytes(byte[] data,String key,String algorithm)

boolean desEncodeFile(String file,String desfile,String key)//file:需要加密的文件地址,desfile:加密后保存的文件地址

boolean desEncodeFile(String filepath,String desfile,String key,String algorithm)

 

解密:

String desDecode(byte[] data,String key)

String desDecode(byte[] data,String key,String algorithm)

byte[] desDecodeBytes(byte[] data,String key)

byte[] desDecodeBytes(byte[] data,String key,String algorithm)

byte[] desDecodeFile(String encfile,String key)

byte[] desDecodeFile(String filepath,String key,String algorithm)

String desDecodeFileStr(String encfile,String key)//encfile:已经加密过的文件地址

String desDecodeFileStr(String filepath,String key,String algorithm)

 

5、AES(128位,注:此加密方式为本框架定制专用,不能通用)

加密:

byte[] aesEncode(String str,String key)

byte[] aesEncodeBytes(byte[] data,String key)

 

解密:

String aesDecode(byte[] data,String key)

byte[] aesDecodeBytes(byte[] data,String key)

 

6、DSA

密钥生成:

HashMap<String,String> dsaGenerateKey()//privatekey为私钥,publickey为公钥,默认1024位

HashMap<String,String> dsaGenerateKey(int keysize)//privatekey为私钥,publickey为公钥,keysize值是512-65536之间,必须是64的倍数

 

密钥转换:

String dsaPrikey2pem(String prikey)//rsa私钥转换成pem格式

String dsaPubkey2pem(String pubkey)//rsa公钥转换成pem格式

String[] dsakey2pem(String prikey,String pubkey)//rsa密钥转换成pem格式,返回数组0的值是公钥,1的值是私钥

 

签名与验签:

 

String DsaSignSha1(String src,String privateKeyEnc)// 签名方式:SHA1withRSA src:签名字符串,privateKeyEnc:私钥 注:密钥长度为1024

boolean DsaVerifySha1(String src, String result,String publicKeyEnc)//验签 src:签名原字符串,result:签名,publicKeyEnc:公钥

 

String DsaSignSha2(String src,String privateKeyEnc)// 签名方式:SHA256withRSA src:签名字符串,privateKeyEnc:私钥

boolean DsaVerifySha2(String src, String result,String publicKeyEnc)//验签 src:签名原字符串,result:签名,publicKeyEnc:公钥

 

String DsaSignSha3(String src,String privateKeyEnc)// 签名方式:SHA384withRSA src:签名字符串,privateKeyEnc:私钥

boolean DsaVerifySha3(String src, String result,String publicKeyEnc)//验签 src:签名原字符串,result:签名,publicKeyEnc:公钥

 

String DsaSignSha5(String src,String privateKeyEnc)// 签名方式:SHA512withRSA src:签名字符串,privateKeyEnc:私钥

boolean DsaVerifySha5(String src, String result,String publicKeyEnc)//验签 src:签名原字符串,result:签名,publicKeyEnc:公钥

 

7、ECDSA 椭圆曲线数字签名算法

密钥生成:

HashMap<String,String> EcdsaGenerateKey()//privatekey为私钥,publickey为公钥,默认256

HashMap<String,String> EcdsaGenerateKey(int keysize)//privatekey为私钥,publickey为公钥,keysize值是112-571

 

签名与验签:

String EcdsaSign(String src,String privateKeyEnc)//src:签名字符串,privateKeyEnc:私钥 SHA1withECDSA

boolean EcdsaVerify(String src, String result,String publicKeyEnc)//src:签名原字符串,result:签名,publicKeyEnc:公钥 SHA1withECDSA

 

String EcdsaSign2(String src,String privateKeyEnc)//src:签名字符串,privateKeyEnc:私钥 SHA2withECDSA

boolean EcdsaVerify2(String src, String result,String publicKeyEnc)//src:签名原字符串,result:签名,publicKeyEnc:公钥 SHA2withECDSA

 

String EcdsaSign3(String src,String privateKeyEnc)//src:签名字符串,privateKeyEnc:私钥 SHA3withECDSA

boolean EcdsaVerify3(String src, String result,String publicKeyEnc)//src:签名原字符串,result:签名,publicKeyEnc:公钥 SHA3withECDSA

 

String EcdsaSign5(String src,String privateKeyEnc)//src:签名字符串,privateKeyEnc:私钥 SHA5withECDSA

boolean EcdsaVerify5(String src, String result,String publicKeyEnc)//src:签名原字符串,result:签名,publicKeyEnc:公钥 SHA5withECDSA

 

8、HMAC 哈希消息认证码

String hmacMd5Key()

String hmacMd5(String str,String key)

 

String hmacSha1Key()

String hmacSha1(String str,String key)

 

String hmacSha2Key()

String hmacSha2(String str,String key)

 

String hmacSha3Key()

String hmacSha3(String str,String key)

 

String hmacSha5Key()

String hmacSha5(String str,String key)