Base64编码
来源:互联网 发布:mac 查看php版本 编辑:程序博客网 时间:2024/06/15 20:52
Base64密码加解密的学习
密码学的基本功能
- 机密性
- 鉴别
- 报文的完整性
- 不可否认性
基本模型
密码学的分类
- 消息编码:Base64
- 消息摘要:MD类、SHA类、MAC
- 对称密码:DES、3DES、AES
- 非对称加密:RSA、DH密钥交换
- 数字签名:RSASignature、DSASignature
密码学五元组
明文、密文、加密算法、解密算法、密钥
其中加密算法和解密算法是公开的,密码的强度依赖于密钥。
密钥与密码的区别
密码 != 密钥
key != password
密钥 + 规则 = 密码
对于密码破解者而言,拿到了密钥就等于有了密码!
如下,AES加密算法是公开的,但是重点在密钥:
AES加密密钥:123456
password >>> AES加密 >>> U2FsdGVkX19/Q43kbdBxoKUMB1IJKRg34QaBJxcEyao=
U2FsdGVkX19/Q43kbdBxoKUMB1IJKRg34QaBJxcEyao= >>> AES解密 >>> password
而当你更换了加密密钥之后,再进行解密此时你将得不到原来的密码了。
对称密码与非对称密码
对称密码:加解密使用相同的密码机制
非对称密码:加解密使用不同的密钥——公钥与私钥
Java编程中常用的类
- 消息编码
BASE64Encoder、BASE64Decoder - 消息摘要
MessageDigest - 对称密码
KeyGenerator、SecretKey、Cipher - 非对称密码
KeyPairGenerator、KeyFactory、keyPair、PublicKey、PrivateKey、Cipher - 数字签名
Signature
Base64算法的编程使用
- Base64编码示例
密文:ZmFuY2hlbg==
明文:fanchen 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);
import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import java.io.IOException;/** * created by chen * on 2017/9/22 17:47 */public class Base64 { /** * 获得经过Base64加密的字符串 * @param source 待加密的字符串 * @return 加密后的字符串 */ public static String getEncrypt(String source){ return new BASE64Encoder().encode(source.getBytes()); } /** * 得到解密后的数据 * @param source 待解密的字符串 * @return 解密后的字符串 */ public static String getDecode(String source){ try { return new String(new BASE64Decoder().decodeBuffer(source)); } catch (IOException e) { e.printStackTrace(); } return null; }}
阅读全文
0 0
- Base64编码
- Base64编码
- base64编码
- BASE64编码
- Base64编码
- BASE64编码
- base64 编码
- Base64编码
- Base64编码
- Base64编码
- base64编码
- BASE64编码
- base64编码
- BASE64编码
- base64编码
- base64编码
- base64编码
- base64 编码
- and...or的 彻底研究
- 从后台获得数据,前台实现数据加载和异步查询
- JDK9的32位版本下载
- GNU常用命令
- unity3D与Socket通信_01
- Base64编码
- Linux 自动加载驱动模块(.ko文件)
- TCP和UDP区别、联系
- java设计模式-策略模式
- 《深入理解java虚拟机》学习笔记(1)--jvm内存区域
- KNL+FPGA是加速深度学习的黄金搭档
- stm32在rt-thread上的RTC(实时时钟)
- 【opencv】 改变图像的对比度和亮度的两种方法
- 分布式系统事务一致性的几种解决方案简析