常见的加密和解密算法—BASE64

1、BASE64加密和解密概述html

  Base64是网络上最多见的用于传输8Bit字节代码的编码方式之一,Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的惟一标识符(通常为128-bit的UUID)编码为一个字符串,用做HTTP表单和HTTP GET URL中的参数。在其余应用程序中,也经常须要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具备不可读性,即所编码的数据不会被人用肉眼所直接看到。java

      然而,标准的Base64并不适合直接放在URL里传输,由于URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还须要再进行转换,由于ANSI SQL中已将“%”号用做通配符。算法

为解决此问题,可采用一种用于URL的改进Base64编码,它不只在末尾去掉填充的'='号,并将标准Base64中的“+”和“/”分别改为了“-”和“_”,这样就免去了在URL编解码和数据库存储时所要做的转换,避免了编码信息长度在此过程当中的增长,并统一了数据库、表单等处对象 标识符的格式。
 
    BASE64 是对称的加密算法(PS:对称加密就是加密用的密码和解密用的密码是同样的,非对称就是加密和解密用的密钥不同)
 
参考链接: BASE64加密和解密
 
 
2、Java实现MD5加密解密
一、maven 引入apache的jar(不是maven项目,去网上下一个jar手动引入)

 

            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.3.2</version>
            </dependency>

 

二、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);
    }

}

 

 

常见加密工具参考连接:apache

一、常见的加密和解密算法—MD5网络

二、常见的加密和解密算法—BASE64maven

三、常见的加密和解密算法—DES工具

四、常见的加密和解密算法—AES测试

相关文章
相关标签/搜索