zoukankan      html  css  js  c++  java
  • javaSHA1实现加密解密

    封装一个方法用于加密

         /**
         * sha1加密
         * @param data
         * @return
         * @throws NoSuchAlgorithmException 
         */
        public static String sha1(String data) throws NoSuchAlgorithmException {
            //加盐   更安全一些
            data += "lyz";
            //信息摘要器                                算法名称
            MessageDigest md = MessageDigest.getInstance("SHA1");
            //把字符串转为字节数组
            byte[] b = data.getBytes();
            //使用指定的字节来更新我们的摘要
            md.update(b);
            //获取密文  (完成摘要计算)
            byte[] b2 = md.digest();
            //获取计算的长度
            int len = b2.length;
            //16进制字符串
            String str = "0123456789abcdef";
            //把字符串转为字符串数组
            char[] ch = str.toCharArray();
            
            //创建一个40位长度的字节数组
            char[] chs = new char[len*2];
            //循环20次
            for(int i=0,k=0;i<len;i++) {
                byte b3 = b2[i];//获取摘要计算后的字节数组中的每个字节
                // >>>:无符号右移  
                // &:按位与
                //0xf:0-15的数字
                chs[k++] = ch[b3 >>> 4 & 0xf];
                chs[k++] = ch[b3 & 0xf];
            }
            
            //字符数组转为字符串
            return new String(chs);
        }

    主函数测试

        public static void main(String[] args) throws NoSuchAlgorithmException {
            
            String data = "跳梁小豆tlxd666";
            String result = sha1(data);
            System.out.println("加密后:"+result);
    
        }    
  • 相关阅读:
    Java线程面试题 Top 50
    深入理解java内存模型
    线程池的理解
    Thread的理解
    ThreadLocal的理解
    排序算法(简)
    排序算法
    【Java集合源码剖析】LinkedHashmap源码剖析
    vsftp上传文件权限问题
    xp 通过注册表修改环境变量
  • 原文地址:https://www.cnblogs.com/luoxiaodou/p/9708884.html
Copyright © 2011-2022 走看看