javaSHA1实现加密解密

Wesley13
• 阅读 697

封装一个方法用于加密

     /**
     * 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);

    }
点赞
收藏
评论区
推荐文章
浅谈加密算法 aes
一、目标搞了这么多期签名和加密解密,今天我们聊聊高大上的东西:加密算法。加密算法我们整体可以分为:不可逆加密算法和可逆加密算法。不可逆加密算法常见的不可逆加密算法有MD5,HMAC,SHA1、SHA224、SHA256、SHA384,和SHA512。他们的特点是,不能从加密后的结果解密出原文,主要用于校检数据的一致性,防止篡改数据,我们之前分析的大部分s
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java实现SHA1加密算法
packageutil;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;publicclassSha1{   publicstaticStringSHA1(Stringdecript){
Wesley13 Wesley13
3年前
DES与RSA加解密
加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。大体上分为双向加密 和单向加密 ,而双向加密又分为对称加密 和非对称加密(有些资料将加密直接分为对称加密和非对称加密)。 双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文。而
Wesley13 Wesley13
3年前
DES加密解密
DES加密解密涉及到的JAVA类Cipher此类为加密和解密提供密码功能。它构成了JavaCryptographicExtension(JCE)框架的核心。为创建Cipher对象,应用程序调用Cipher的getInstance方法并将所请求转换的名称传递给它。还可
Wesley13 Wesley13
3年前
Java 进行 RSA 加解密时不得不考虑到的那些事儿
Java进行RSA加解密时不得不考虑到的那些事儿博客分类:java1\.加密的系统不要具备解密的功能,否则RSA可能不太合适公钥加密,私钥解密。加密的系统和解密的系统分开部署,加密的系统不应该同时具备解密的功能,这样即使黑客攻破了加密系统,他拿到的也只是一堆无法破解的密
Stella981 Stella981
3年前
API加密框架Monkey
框架介绍monkeyapiencrypt是我之前写的一个API加密的框架,主要是将加密/解密的逻辑交给框架实现,等数据到达Controller后自动解密了,让开发人员不需要关注数据的加解密操作。Github:https://github.com/yinjihuan/monkeyapiencrypt\1\!(ht
Wesley13 Wesley13
3年前
Go加密解密之DES
一、DES简介DES(DataEncryptionStandard)是对称加密算法,也就是加密和解密用相同的密钥。其入口参数有三个:key、data、mode。key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解
Stella981 Stella981
3年前
Linux下DES安全通信编程
des.h///文件名:des.h/功能: 实现DES加密算法的加密解密功能    for linux/
搭建平台吧 搭建平台吧
2年前
哈希竞猜搭建部署方案
首先,什么是哈希?哈希是将任意长的输入编程加密的固定长度输出的过程。哈希并不等同于加密方法,因为无法解密哈希值来获取原始数据。事实上哈希是一种单向加密函数。有了哈希函数,就可以将互联网上的数据以固定长度字符串的形式来保存。其中一种方法就是SHA256(安全哈希算法256位),SHA256是SHA1的后继者,SHA1的输出是160位的。哈希游戏的亮点:100%