JAVA加密与解密.docx
文本预览下载声明
摘要:?java加密与解密,java秘钥体系
摘要算法摘要算法主要包含三大类型:MD算法,SHA算法,已经基于KEY的MAC算法
MD算法MD算法主要有MD2,MD3,MD4以及最常用的MD5。SHA算法主要有SHA-1,SHA-224,SHA-256,SHA-384,SHA-512。MAC算法是基于哈西散列算法(MD系列或者SHA系列等),在HASH散列进行KEY加密
JAVA密码体系对主流摘要算法的支持
MD5算法的调用示例
package com.rcl.platform.demo;
import java.security.InvalidKeyException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.Provider;
import java.security.Security;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import vider.BouncyCastleProvider;
public class ProviderTest {
public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException, InvalidKeyException {
MessageDigest messageDigest = MessageDigest.getInstance(MD5);
messageDigest.update(我是MD.getBytes());
byte [] md5 = messageDigest.digest();
System.out.println(byte2HexStr(md5));
Security.addProvider(new BouncyCastleProvider());//注册BouncyCastleProvider
Provider provider = Security.getProvider(BC);
messageDigest = MessageDigest.getInstance(MD4, provider);
messageDigest.update(我是MD.getBytes());
byte [] md4 = messageDigest.digest();
System.out.println(byte2HexStr(md4));
messageDigest = MessageDigest.getInstance(SHA512);//调用SHA算法
messageDigest.update(我是SHA.getBytes());
byte [] sha512 = messageDigest.digest();
System.out.println(byte2HexStr(sha512));
SecretKey secretKey = new SecretKeySpec(woshikey.getBytes(), HmacSHA512);//HMAC算法调用
Mac mac = Mac.getInstance(secretKey.getAlgorithm());
mac.init(secretKey);
byte [] hmacSHA224 = mac.doFinal(我是SHA.getBytes());
System.out.println(byte2HexStr(hmacSHA224));
}
public static String byte2HexStr(byte[] b) {
String stmp=;
StringBuilder sb = new StringBuilder();
for (int n=0;nb.length;n++)
显示全部