`
z_jiankun
  • 浏览: 159442 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java常用的对密码加密的方法(MD5,SHA)

    博客分类:
  • Java
阅读更多

Java常用的对密码加密的方法(MD5,SHA)

关键字: md5 sha sha-256 sha-512

主要使用到了MessageDigest这个类
主要的方法:
Java代码
  1.        /**  
  2.  * 将摘要信息转换为相应的编码  
  3.  * @param code 编码类型  
  4.  * @param message 摘要信息  
  5.  * @return 相应的编码字符串  
  6.  */   
  7. private  String Encode(String code,String message){  
  8.     MessageDigest md;  
  9.     String encode = null ;  
  10.     try  {  
  11.         md = MessageDigest.getInstance(code);  
  12.         encode = byteArrayToHexString(md.digest(message  
  13.                 .getBytes()));  
  14.     } catch  (NoSuchAlgorithmException e) {  
  15.         e.printStackTrace();  
  16.     }  
  17.     return  encode;  
  18. }  
       /**
	 * 将摘要信息转换为相应的编码
	 * @param code 编码类型
	 * @param message 摘要信息
	 * @return 相应的编码字符串
	 */
	private String Encode(String code,String message){
		MessageDigest md;
		String encode = null;
		try {
			md = MessageDigest.getInstance(code);
			encode = byteArrayToHexString(md.digest(message
					.getBytes()));
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		return encode;
	}

编码转换的方法:
Java代码
  1. /**  
  2.      * 将摘要信息转换成MD5编码  
  3.      * @param message 摘要信息  
  4.      * @return MD5编码之后的字符串  
  5.      */   
  6.     public  String md5Encode(String message){  
  7.         return  Encode( "MD5" ,message);  
  8.     }  
  9.     /**  
  10.      * 将摘要信息转换成SHA编码  
  11.      * @param message 摘要信息  
  12.      * @return SHA编码之后的字符串  
  13.      */   
  14.     public  String shaEncode(String message){  
  15.         return  Encode( "SHA" ,message);  
  16.     }  
  17.     /**  
  18.      * 将摘要信息转换成SHA-256编码  
  19.      * @param message 摘要信息  
  20.      * @return SHA-256编码之后的字符串  
  21.      */   
  22.     public  String sha256Encode(String message){  
  23.         return  Encode( "SHA-256" ,message);  
  24.     }  
  25.     /**  
  26.      * 将摘要信息转换成SHA-512编码  
  27.      * @param message 摘要信息  
  28.      * @return SHA-512编码之后的字符串  
  29.      */   
  30.     public  String sha512Encode(String message){  
  31.         return  Encode( "SHA-512" ,message);  
  32.     }  
/**
	 * 将摘要信息转换成MD5编码
	 * @param message 摘要信息
	 * @return MD5编码之后的字符串
	 */
	public String md5Encode(String message){
		return Encode("MD5",message);
	}
	/**
	 * 将摘要信息转换成SHA编码
	 * @param message 摘要信息
	 * @return SHA编码之后的字符串
	 */
	public String shaEncode(String message){
		return Encode("SHA",message);
	}
	/**
	 * 将摘要信息转换成SHA-256编码
	 * @param message 摘要信息
	 * @return SHA-256编码之后的字符串
	 */
	public String sha256Encode(String message){
		return Encode("SHA-256",message);
	}
	/**
	 * 将摘要信息转换成SHA-512编码
	 * @param message 摘要信息
	 * @return SHA-512编码之后的字符串
	 */
	public String sha512Encode(String message){
		return Encode("SHA-512",message);
	}

Main方法测试
Java代码
  1. CodeUtil cu =  new  CodeUtil();  
  2.         //对MD5进行验证   
  3.         System.out.println("----MD5----" );  
  4.         System.out.println(cu.validate("d41d8cd98f00b204e9800998ecf8427e" , cu.md5Encode( "" )));  
  5.         System.out.println(cu.validate("0cc175b9c0f1b6a831c399e269772661" , cu.md5Encode( "a" )));  
  6.         System.out.println(cu.validate("900150983cd24fb0d6963f7d28e17f72" , cu.md5Encode( "abc" )));  
  7.         System.out.println(cu.validate("f96b697d7cb7938d525a2f31aaf161d0" , cu.md5Encode( "message digest" )));  
  8.         System.out.println(cu.validate("c3fcd3d76192e4007dfb496cca67e13b" , cu.md5Encode( "abcdefghijklmnopqrstuvwxyz" )));  
  9.         System.out.println(cu.validate("d174ab98d277d9f5a5611c2c9f419d9f" , cu.md5Encode( "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" )));  
  10.         System.out.println(cu.validate("57edf4a22be3c955ac49da2e2107b67a" , cu.md5Encode( "12345678901234567890123456789012345678901234567890123456789012345678901234567890" )));  
  11.           
  12.         //对SHA进行验证   
  13.         System.out.println("----SHA----" );  
  14.         System.out.println(cu.validate("2fd4e1c67a2d28fced849ee1bb76e7391b93eb12" , cu.shaEncode( "The quick brown fox jumps over the lazy dog" )));  
  15.         System.out.println(cu.validate("de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3" , cu.shaEncode( "The quick brown fox jumps over the lazy cog" )));  
  16.         System.out.println(cu.validate("da39a3ee5e6b4b0d3255bfef95601890afd80709" , cu.shaEncode( "" )));  
  17.         System.out.println("-----------" );  
  18.           
  19.         //对于SHA-256,SHA-512请自行验证   
  20.           
  21.         //下面显示MD5 SHA SHA-256 SHA-512所生成的长度   
  22.           
  23.         System.out.println("--MD5--:" +cu.md5Encode( "test" ));  
  24.         System.out.println("--SHA--:" +cu.shaEncode( "test" ));  
  25.         System.out.println("SHA-256:" +cu.sha256Encode( "test" ));  
  26.         System.out.println("SHA-512:" +cu.sha512Encode( "test" ));  
CodeUtil cu = new CodeUtil();
		//对MD5进行验证
		System.out.println("----MD5----");
		System.out.println(cu.validate("d41d8cd98f00b204e9800998ecf8427e", cu.md5Encode("")));
		System.out.println(cu.validate("0cc175b9c0f1b6a831c399e269772661", cu.md5Encode("a")));
		System.out.println(cu.validate("900150983cd24fb0d6963f7d28e17f72", cu.md5Encode("abc")));
		System.out.println(cu.validate("f96b697d7cb7938d525a2f31aaf161d0", cu.md5Encode("message digest")));
		System.out.println(cu.validate("c3fcd3d76192e4007dfb496cca67e13b", cu.md5Encode("abcdefghijklmnopqrstuvwxyz")));
		System.out.println(cu.validate("d174ab98d277d9f5a5611c2c9f419d9f", cu.md5Encode("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")));
		System.out.println(cu.validate("57edf4a22be3c955ac49da2e2107b67a", cu.md5Encode("12345678901234567890123456789012345678901234567890123456789012345678901234567890")));
		
		//对SHA进行验证
		System.out.println("----SHA----");
		System.out.println(cu.validate("2fd4e1c67a2d28fced849ee1bb76e7391b93eb12", cu.shaEncode("The quick brown fox jumps over the lazy dog")));
		System.out.println(cu.validate("de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3", cu.shaEncode("The quick brown fox jumps over the lazy cog")));
		System.out.println(cu.validate("da39a3ee5e6b4b0d3255bfef95601890afd80709", cu.shaEncode("")));
		System.out.println("-----------");
		
		//对于SHA-256,SHA-512请自行验证
		
		//下面显示MD5 SHA SHA-256 SHA-512所生成的长度
		
		System.out.println("--MD5--:"+cu.md5Encode("test"));
		System.out.println("--SHA--:"+cu.shaEncode("test"));
		System.out.println("SHA-256:"+cu.sha256Encode("test"));
		System.out.println("SHA-512:"+cu.sha512Encode("test"));


如果条件允许,尽量使用sha256 sha512进行加密
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics