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"));
    	}
    }
    
  • 相关阅读:
    C# 获取本地电脑所有的盘符
    C#winform程序安装在默认路径提示权限不足的问题
    BadImageFormatException异常处理
    未能找到元数据文件解决办法
    [转]DllImport属性详解
    九度oj1163题
    一致性哈希
    salt-stack部署
    查询系统支持的最大线程和进程数量
    Linux 单机测试 RS232 串口
  • 原文地址:https://www.cnblogs.com/wjup/p/11041279.html
Copyright © 2011-2022 走看看