Base64编码

秒速五厘米 2021-09-14 06:10 570阅读 0赞

Base64密码加解密的学习

密码学的基本功能

  1. 机密性
  2. 鉴别
  3. 报文的完整性
  4. 不可否认性

基本模型

加密基本模型

密码学的分类

  1. 消息编码:Base64
  2. 消息摘要:MD类、SHA类、MAC
  3. 对称密码:DES、3DES、AES
  4. 非对称加密:RSA、DH密钥交换
  5. 数字签名:RSASignature、DSASignature

密码学五元组

明文、密文、加密算法、解密算法、密钥
其中加密算法和解密算法是公开的,密码的强度依赖于密钥。

密钥与密码的区别

密码 != 密钥
key != password
密钥 + 规则 = 密码
对于密码破解者而言,拿到了密钥就等于有了密码!
如下,AES加密算法是公开的,但是重点在密钥:
AES加密密钥:123456
password >>> AES加密 >>> U2FsdGVkX19/Q43kbdBxoKUMB1IJKRg34QaBJxcEyao=
U2FsdGVkX19/Q43kbdBxoKUMB1IJKRg34QaBJxcEyao= >>> AES解密 >>> password
而当你更换了加密密钥之后,再进行解密此时你将得不到原来的密码了。

对称密码与非对称密码

对称密码:加解密使用相同的密码机制
非对称密码:加解密使用不同的密钥——公钥与私钥

Java编程中常用的类

  1. 消息编码
    BASE64Encoder、BASE64Decoder
  2. 消息摘要
    MessageDigest
  3. 对称密码
    KeyGenerator、SecretKey、Cipher
  4. 非对称密码
    KeyPairGenerator、KeyFactory、keyPair、PublicKey、PrivateKey、Cipher
  5. 数字签名
    Signature

Base64算法的编程使用

  1. Base64编码示例
    密文:ZmFuY2hlbg==
    明文:fanchen
  2. Base64算法的定义
    Base64是一种基于64个字符的编码算法,以任意的8位字节序列组合的描述形式,这种形式不易直接识别。经过Base64编码后的字符串的字符数是以4为单位的整数倍。

    附上Base64的百度百科

Base64编程使用

1). 加密
byte[] data = “fanchen”.getBytes();
String result = new BASE64Encoder().encode(data);

2). 解密
byte[] result = new BASE64Decoder().decodebuffer(data);

  1. import sun.misc.BASE64Decoder;
  2. import sun.misc.BASE64Encoder;
  3. import java.io.IOException;
  4. /** * created by chen * on 2017/9/22 17:47 */
  5. public class Base64 {
  6. /** * 获得经过Base64加密的字符串 * @param source 待加密的字符串 * @return 加密后的字符串 */
  7. public static String getEncrypt(String source){
  8. return new BASE64Encoder().encode(source.getBytes());
  9. }
  10. /** * 得到解密后的数据 * @param source 待解密的字符串 * @return 解密后的字符串 */
  11. public static String getDecode(String source){
  12. try {
  13. return new String(new BASE64Decoder().decodeBuffer(source));
  14. } catch (IOException e) {
  15. e.printStackTrace();
  16. }
  17. return null;
  18. }
  19. }

发表评论

表情:
评论列表 (有 0 条评论,570人围观)

还没有评论,来说两句吧...

相关阅读

    相关 base64编码

    用途:采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。例如 输入:s13 输出:czEz Base64编码说明   Base64编码要求

    相关 Base64编码

    Base64编码要求把3个8位字节(3\8=24)转化为4个6位的字节(4\6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填

    相关 Base64编码

           开发者对Base64编码肯定很熟悉,是否对它有很清晰的认识就不一定了。实际上Base64已经简单到不能再简单了,如果对它的理解还是模棱两可实在不应该。大概介绍一下

    相关 Base64编码

     Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Bas

    相关 Base-64编码

    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。 Base64要求把每三个8Bit

    相关 Base64编码

    Base64密码加解密的学习 密码学的基本功能 1. 机密性 2. 鉴别 3. 报文的完整性 4. 不可否认性 基本模型 ![加密基本模型][Sou

    相关 Base64编码

    一、Base64由来 [ASCII][] 在上文中我们介绍了ASCII编码。采用的是8bit编码。但是ASCII中一些打印字符、控制字符在一些数据传递协议中是不能被传