常见的加密和解密算法—BASE64
2017-04-15 18:28
531 查看
一、BASE64加密和解密概述
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。
然而,标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。
为解决此问题,可采用一种用于URL的改进Base64编码,它不仅在末尾去掉填充的'='号,并将标准Base64中的“+”和“/”分别改成了“-”和“_”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。
BASE64 是对称的加密算法(PS:对称加密就是加密用的密码和解密用的密码是一样的,非对称就是加密和解密用的密钥不一样)
参考连接:BASE64加密和解密
二、Java实现MD5加密解密
1、maven 引入apache的jar(不是maven项目,去网上下一个jar手动引入)
2、MD5使用代码
常见加密工具参考链接:
1、常见的加密和解密算法—MD5
2、常见的加密和解密算法—BASE64
3、常见的加密和解密算法—DES
4、常见的加密和解密算法—AES
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。
然而,标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。
为解决此问题,可采用一种用于URL的改进Base64编码,它不仅在末尾去掉填充的'='号,并将标准Base64中的“+”和“/”分别改成了“-”和“_”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。
BASE64 是对称的加密算法(PS:对称加密就是加密用的密码和解密用的密码是一样的,非对称就是加密和解密用的密钥不一样)
参考连接:BASE64加密和解密
二、Java实现MD5加密解密
1、maven 引入apache的jar(不是maven项目,去网上下一个jar手动引入)
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.3.2</version> </dependency>
2、MD5使用代码
package com.jd.test; import org.apache.commons.codec.binary.Base64; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.UnsupportedEncodingException; /** * * BASE64 通用类 * * @author 浩令天下 * @since 2017.04.15 * @version 1.0.0_1 * */ public class Base64Util { private static final Logger logger = LoggerFactory.getLogger(Base64Util.class); /** * 对给定的字符串进行base64解码操作 */ public static String decodeData(String inputData) { try { if (null == inputData) { return null; } return new String(Base64.decodeBase64(inputData.getBytes("utf-8")), "utf-8"); } catch (UnsupportedEncodingException e) { logger.error(inputData, e); } return null; } /** * 对给定的字符串进行base64加密操作 */ public static String encodeData(String inputData) { try { if (null == inputData) { return null; } return new String(Base64.encodeBase64(inputData.getBytes("utf-8")), "utf-8"); } catch (UnsupportedEncodingException e) { logger.error(inputData, e); } return null; } /** * 测试入口 * * @param args */ public static void main(String args[]){ String encodeStr=Base64Util.encodeData("龙不吟,虎不啸"); System.out.println("encodeStr="+encodeStr); String decodeStr=Base64Util.decodeData(encodeStr); System.out.println("decodeStr="+decodeStr); } }
常见加密工具参考链接:
1、常见的加密和解密算法—MD5
2、常见的加密和解密算法—BASE64
3、常见的加密和解密算法—DES
4、常见的加密和解密算法—AES
相关文章推荐
- AES加解密算法,使用Base64做转码以及辅助加密
- 谈谈加密、解密及常见算法,openssl加密及CA数字证书签署的过程(linux CA签发 vsftp)
- Base64 算法原理,以及编码、解码【加密、解密】 介绍
- Java加密/解密算法快速入门上篇[包括MD5、BASE64、DES、RSA等]
- 常见的加密和解密算法—DES
- base64加密解密算法 C实现(转载)
- ios常见加密解密算法介绍与应用
- base64算法加密 、解密
- Java加密解密算法-Base64加密解密
- Java加密解密快速入门下篇【包括MD5、BASE64、DES、RSA等算法】
- 谈谈加密、解密及常见算法,openssl加密及CA数字证书签署的过程
- 在Java中利用Apache Commons Codec API实现常见的加密解密算法,如:md5,sha256
- Java加密解密快速入门下篇【包括MD5、BASE64、DES、RSA等算法】
- lua之base64加密和解密算法。
- C# 加密或解密算法 Cryptography CRC32 MD5 BASE64
- Base64 算法原理,以及编码、解码【加密、解密】 介绍
- 实现BASE64加密、解密算法
- BASE64,MD5,SHA,HMAC加密与解密算法(java)
- 常见的加密和解密算法—AES
- 常见的加密和解密算法—MD5