zoukankan      html  css  js  c++  java
  • 创建用户时对密码加密算法

    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    /**
     * Java常用的对密码加密的方法
     * 对摘要信息进行加密编码
     * @author zhangmf
     * @version v1.0
     */
    public class CodeUtil {
    	private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
    		"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
    	/**
    	 * 将字节数组转换为16进制的字符串
    	 * @param byteArray 字节数组
    	 * @return 16进制的字符串
    	 */
    	private static String byteArrayToHexString(byte[] byteArray){
    		StringBuffer sb = new StringBuffer();
    		for(byte byt:byteArray){
    			sb.append(byteToHexString(byt));
    		}
    		return sb.toString();
    	}
    	/**
    	 * 将字节转换为16进制字符串
    	 * @param byt 字节
    	 * @return 16进制字符串
    	 */
    	private static String byteToHexString(byte byt) {
    		int n = byt;
    		if (n < 0)
    			n = 256 + n;
    		return hexDigits[n/16] + hexDigits[n%16];
    	}
    	/**
    	 * 将摘要信息转换为相应的编码
    	 * @param code 编码类型
    	 * @param message 摘要信息
    	 * @return 相应的编码字符串
    	 */
    	private static 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;
    	}
    	/**
    	 * 将摘要信息转换成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编码之后的字符串
    	 */
    	private static String sha256Encode(String message){
    		return Encode("SHA-256",message);
    	}
    	/**
    	 * 将摘要信息转换成SHA-512编码
    	 * @param message 摘要信息
    	 * @return SHA-512编码之后的字符串
    	 */
    	private static String sha512Encode(String message){
    		return Encode("SHA-512",message);
    	}
    	
    	public static String icpSHA512Encode(String username,String password) {
    		
    		String encodeusername=sha512Encode(username);
    		String union=encodeusername+"_"+password;
    	    return sha512Encode(union);
    	}
    
    	public static String icpSHA256Encode(String username,String password) {
    		
    		String encodeusername=sha256Encode(username);
    		String union=encodeusername+"_"+password;
    	    return sha256Encode(union);
    	}
    	public static void main(String[] args) {
    		System.out.println(CodeUtil.icpSHA256Encode("xxx@qq.com", "111111"));
    		System.out.println(CodeUtil.icpSHA256Encode("xxx@qq.com", "111111"));
    		System.out.println(CodeUtil.icpSHA256Encode("xxx@qq.com", "222222"));
    		System.out.println(CodeUtil.icpSHA256Encode("zzz@zz.com", "111111"));
    		System.out.println(CodeUtil.icpSHA256Encode("zzz@zz.com", "111111"));
    		System.out.println(CodeUtil.icpSHA256Encode("zzz@zz.com", "222222"));
    	}
    }
    
  • 相关阅读:
    行为的封装
    分页功能-----》链表实现
    python入门教程链接
    作用域 属性链接 存储类型
    Codeforces Round #598 (Div. 3)
    CCPC2018-湖南全国邀请赛
    【洛谷P2494】 [SDOI2011]保密(分数规划+最小割)
    【洛谷P3329】 [ZJOI2011]最小割(最小割树)
    【BZOJ3716】[PA2014]Muzeum(贪心+网络流)
    【洛谷P4542】 [ZJOI2011]营救皮卡丘(费用流)
  • 原文地址:https://www.cnblogs.com/wjup/p/11041279.html
Copyright © 2011-2022 走看看