文档详情

JAVA加密与解密.docx

发布:2018-05-13约10千字共12页下载文档
文本预览下载声明
摘要:?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++)
显示全部
相似文档