Apache Commons Codec:各种加密了解一下

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Apache Commons Codec简介Apache Commons Codec:Apache Commons Codec (TM) software provides implementations of common encoders and decoders such as Base64, Hex, Phonetic and URLs.Apache Commons Codec(TM)软件提供常见编码器和解码器的实现,如Base64,Hex,Phonetic和URL。
img_a50194c8a0edcbf100b7144bfbc93729.png
Apache Commons Codec

简介

Apache Commons Codec:

Apache Commons Codec (TM) software provides implementations of common encoders and decoders such as Base64, Hex, Phonetic and URLs.
Apache Commons Codec(TM)软件提供常见编码器和解码器的实现,如Base64,Hex,Phonetic和URL。
以上是Apache官网提供的对Commons Codec 的简单描述,我们获得的很明确的一条信息是:提供了一些加密的API,是加密的一种解决方案.

准备工作

maven 坐标(mirrors)

 <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.11</version>
        </dependency>

快速上手

1.MD5散列算法

词汇解释:
MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。

DigestUtils.md5Hex(String str)

@Test
    public void MD5Method(){
        String md5Hex = DigestUtils.md5Hex("123456");
        System.out.println(md5Hex);
    }
img_b0b9c9b9b5d6c955545cc62929aef624.png
加密之后的字符串

2.Base64

是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范

 @Test
    public void Base64Method(){
        Base64 base64 = new Base64();
        String str = base64.encodeToString("123456".getBytes());
        System.out.println(str);
        System.out.println("-----------解密----------");
        String s = new String(base64.decode(str));
        System.out.println(s);
    }
img_1d0862ede6773dcd6364b9cb7ad9974a.png
Base64加密解密

Base64 的加密算法是可逆的

3.SHA1散列算法(40位)

@Test
    public void SHA1Method(){
        String s = DigestUtils.sha1Hex("123456");
        System.out.println("---------------SHA1-----------");
        System.out.println(s);
    }
img_fc0698b8799b431c78ec2996b2d25a41.png
SHA1散列算法

4.SHA256散列算法

 @Test
    public void SHA256Method(){
        String s = DigestUtils.sha256Hex("123456");
        System.out.println("--------------SHA256------------");
        System.out.println(s);
    }
img_9fd7759a8821b19a2f278c74d3bd0196.png
SHA256散列算法

使用场景

用户注册登录.
通常情况下数据库中的用户表种密码字段中的值是比较敏感的数据,即使是一个公司的DBA或者数据数据仓库的管理员也是不会直接看到铭文显示的用户密码。所以我们通常在用户注册的时候就是把密码加密存储到数据库。那么问题这个时候就来了,加密之后存库的密码并不是用户注册的时候的输入的密码,那么我们如何在用户等登录的时候对用户的用户名和密码进行校验呢?
如果是Base64这样的加密算法,我们就可以通过解密的方式,但是使用的是MD5之类的散列算法这些不可逆的加密之后,我们就是在用户登录的时候对用户数据的密码进行再次加密然后到数据库中匹配,同样的数据每次加密之后的数据肯定是相同的。

目录
相关文章
|
10月前
|
Apache
java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream
java.lang.NoClassDefFoundError: org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream
459 0
|
3月前
|
Java 数据库连接 Apache
深入理解Apache Commons Pool2池化技术
深入理解Apache Commons Pool2池化技术
|
Java Apache Maven
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory解决方法
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory解决方法
1306 0
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory解决方法
|
4月前
|
算法 Java Apache
Apache Commons
Apache Commons是一个开源项目,提供了一系列的工具和库,用于简化Java开发中的常见任务。
50 1
|
移动开发 前端开发 Java
Spring MVC-09循序渐进之文件上传(基于Apache Commons FileUpload)
Spring MVC-09循序渐进之文件上传(基于Apache Commons FileUpload)
95 0
|
Java 应用服务中间件 Apache
nested exception is java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntim
nested exception is java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntim
350 0
|
Java Apache
java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory
java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory
94 0
|
存储 Java Apache
java积累——apache commons fileupload 实现文件上传
java积累——apache commons fileupload 实现文件上传
342 0
|
网络安全 Apache 数据安全/隐私保护
phpstudy集成下Apache配置SSL证书实现https加密访问
phpstudy集成下Apache配置SSL证书实现https加密访问
|
Apache
Apache Commons DbUtils工具使用
Apache Commons DbUtils工具使用
145 0
Apache Commons DbUtils工具使用

推荐镜像

更多