zoukankan      html  css  js  c++  java
  • 常用的加密解密算法

    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    
    
    /**
     * Java常用的对密码加密的方法 对摘要信息进行加密编码
     */
    public class PasswordUtil {
        
        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 static String md5Encode(String message) {
            return encode("MD5", message);
        }
    
        /**
         * 将摘要信息转换成SHA编码
         * 
         * @param message
         *            摘要信息
         * @return SHA编码之后的字符串
         */
        public static String shaEncode(String message) {
            return encode("SHA", message);
        }
    
        /**
         * 将摘要信息转换成SHA-256编码
         * 
         * @param message
         *            摘要信息
         * @return SHA-256编码之后的字符串
         */
        public static String sha256Encode(String message) {
            return encode("SHA-256", message);
        }
    
        /**
         * 将摘要信息转换成SHA-512编码
         * 
         * @param message
         *            摘要信息
         * @return SHA-512编码之后的字符串
         */
        public static String sha512Encode(String message) {
            return encode("SHA-512", message);
        }
    
        @SuppressWarnings("unused")
        private String validate(String code, String tag) {
            if (code.equals(tag))
                return "通过验证";
            return "未通过验证";
        }
    }
  • 相关阅读:
    通过xshell在本地win主机和远程linux主机传输文件
    CentOS7.4搭建ftp服务
    CentOS7.4中配置jdk环境
    spring AOP学习笔记
    java代码连接oracle数据库的方法
    通过xshell上传和下载文件
    java设计模式简述
    本地项目文件通过git提交到GitHub上
    centos7中oracle数据库安装和卸载
    centos7远程服务器中redis的安装与java连接
  • 原文地址:https://www.cnblogs.com/difme/p/5630347.html
Copyright © 2011-2022 走看看