zoukankan      html  css  js  c++  java
  • Base64加密与解密

    Base64加密方式是将原文经过简单的字符转换,转换成不easy被肉眼看出的字符编码。Base64加密经常使用在HTTP环境下传递较长的标识信息确保不破坏HTTP的请求格式,Base64的加密原理是将3个8位二进制转换为4个6位二进制,不足6位时高位补0 。以确保其值为64个可能,这就是Base64来源。

    例如以下图就是Base64标准中的编码表。


    取个样例:

    须要加密的原文是“ABC”这三个字母,通过ASCII表得到这个三个字母的值的二进制表示为(去查ASCII表):

    字符A:01000001  (65)

    字符B:01000010  (66)

    字符C:01000011  (67)

    所以须要加密的原文的码流为01000001 01000010 01000011,经过转换成4个6位二进制得到

    010000  010100 001001  000011

    然后高位补0得到的8位二进制得到

    00010000   00010100    00001001    00000011   

    16                20                   9                   3          所相应的十进制为

    Q                  U                    J                    D          Base64编码

    由此能够看到。“ABC”经过Base64加密后变成了“QUJD”,从长度能够看出添加了1/4,从结果上来说。加密后的字符仅仅有64种可能。事实上想想,之所以会把8位转换成6位。也是这种道理。

    毕竟2的6次方减1等于63!这也是Base64加密的原理。Base64解密的原理恰好是加密的反向过程,过程是可逆的。

    当反向解码后就会得到原文。尽管Bae64加密的数据安全性不是非常高。可是肉眼上也不太easy看出来原文。发送Email时对内容的加密就是採用的Base64。这是有历史原因的。

    下面两种情况

    1、中文加密:仅仅加密一个中文汉字时。因为一个中文汉字是两个字节!所以从16位自己主动填充到24位bits。所得Base64加密结果是4个字节。

    2、 原文(bits)%24 != 0 ,自己主动填充成24bits的整倍数。

    关于Base64很多其它的使用方法这里就不用说了,详细的java代码实现见:http://download.csdn.net/detail/main_stage/7507185


  • 相关阅读:
    小球(总结sort和cmp函数、结构体排序)
    垃圾装袋(标记法)【标记思想】
    种树(标记思想)【贪心算法】
    PHP 配置文件
    最大前驱路径
    PHP代码片段
    PHP 中的Trait
    BootStrapTable 错误
    工作两周总结
    工作一周总结
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6803222.html
Copyright © 2011-2022 走看看