美文网首页
密码学之01Base64编码

密码学之01Base64编码

作者: EricLihuifeng | 来源:发表于2017-08-31 10:54 被阅读25次

    密码学概述

    1. 密码学基本功能
    • 机密性
    • 鉴别
    • 报文完整性
    • 不可否认性
    1. 基本模型
    模型.png
    1. 算法分类
    • 消息编码:Base64
    • 消息摘要:MD、SHA、MAC
    • 对称加密:DES、3DES、AES
    • 非对称加密:RSA、DH密钥交换
    • 数字签名:RSASignature、DSASignature
    1. 密码学五元祖
    • (明文、密文、加密算法、加密算法、密钥
    • 密码和密钥区别
      密钥 != 密码
      密钥+规则 == 密码
      对于破解者来说,拿到密钥就等于拿到了密码。所以重点是密钥!
    1. 对称密码&非对称密码
      对称密码:加解密使用相同密钥的密码体制
      非对称密码:加解密使用不同的密钥-公钥和私钥
    2. Java中常用的类
    • 消息编码:BASE64Encoder、BASE64Decoder
    • 消息摘要:MessageDigest
    • 对称加密:KeyGenerator、SecretKey、Cipher
    • 非对称密码:KeyPairGenerator、KeyFactory、KeyPair、PublicKey、PrivateKey、Cipher
    • 数字签名:Signature

    Base64算法编程使用

    • Base64工具类
    import java.io.IOException;
    
    import sun.misc.BASE64Encoder;
    import sun.misc.BASE64Decoder;
    
    public class Base64Util {
        
        public static String encryptBase64(byte[] data){
            return new BASE64Encoder().encode(data);
        }
        
        public static String decryptBase64(String data) throws IOException{
            byte[] resultBytes = new BASE64Decoder().decodeBuffer(data);
            return new String(resultBytes);
        }
    }
    
    /*
     * --"JDK"
     * --Commons Codec
     * --Bouncy Castle
     */
    
    • 使用和输出结果如下:
    public class Base64 {
        public static final String DATA = "Eric Base64";
        public static void main(String[] args) throws Exception {
            /* Test Base64 */
            String base64Result = Base64Util.encryptBase64(DATA.getBytes());
            System.out.println(DATA + "  >>>Base64编码>>>" + base64Result);
            String base64String = Base64Util.decryptBase64(base64Result);
            System.out.println(base64Result + "  >>>Base64解码>>>" + base64String);
        }
    }
    
    输出结果:
    Eric Base64  >>>Base64编码>>>RXJpYyBCYXNlNjQ=
    RXJpYyBCYXNlNjQ=  >>>Base64解码>>>Eric Base64
    

    相关文章

      网友评论

          本文标题:密码学之01Base64编码

          本文链接:https://www.haomeiwen.com/subject/vxzfjxtx.html