密码学的基本理论

——古典密码学

  • 替换法
  • 移位法
    • 凯撒密码(凯撒加密):把26个字母进行左或者右的位移,最多只能移动25位
  • 破解:频率分析法(概率论)

——近代密码学

  • 恩尼格玛密码机:核心使用的是 移位法和替换法
  • 破解:人工智能之父 图灵

——现代密码学

  • 散列函数(哈希函数)
    • MD5,SHA-1,SHA-256
  • 对称加密:使用相同的加密密钥和解密密钥
    • 流加密:一个一个一次加密
    • 块加密 :分组分块加密
    • 特点:
      • 加密速度快
      • 密文不可逆,密钥不能泄露
      • ASCII 找不到对应字符,会出现乱码
      • 通常结合 base64 一起使用
    • 加密算法:
      • DES
      • AES
  • 非对称加密:公钥加密则由私钥解密,私钥加密由公钥解密
    • RSA
    • ECC
  • Base64
    • 不是加密算法,是可读性算法
    • 由 64 个 字符组成,大写 A-Z(26),小写 a-z(26),数字 0-9(10),符号 + 和 /(2)
    • 原理:3 个字节为一组,一个字节是 8 位,一共 24 位;base64把 3 个字节转换成 4 组,每组 6 位,一个字节是 8 位,缺少 2 位,在高位进行补 0 ,这样 base64 可控制在 0-63 之间
    • 当字节不够的时候,需要使用“=”进行补齐
  • Base58
    • 在 Base64 的组成基础上,无 0 ,o,I,i,+,/(不方便区分)
    • 基本用在比特币上
  • toString() 和 new String的区别
    • toString() 调用的是 object 的 toString() 方法,返回的是哈希值;一般在做对象打印 或 想获取地址时使用
    • new String 是根据参数,使用 java 虚拟机默认编码格式,将参数进行 decode ,然后在 ASCII 编码中找到对应的字符;一般在进行转码时使用

消息摘要(数字摘要)

  • 是一个唯一对应一个消息或文本的固定长度的值
  • 不可篡改,为了保证文件或值的安全
  • 无论输入的消息多长,计算出来的消息摘要的长度总是固定
  • 常见算法:
    • MD5
    • SHA1
    • SHA256
    • SHA512
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序少年不秃头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值