常用加密算法

常见加密算法


编码

ASCII编码

用一个字节(7个或8个二进制位) 定义了128个字符 (96 个可打印字符, 32 个控制字符)

英语中用128个符号编码便可以表示所有

几个常见字母的ASCII码: “0-9”为 48-57; “A-Z”为65-90;“a-z”为97-122;

unicode编码

想要用固定字节, 将世界上所有的符号都纳入其中

  • 缺点
    英文用一个字节就够了,被迫用多个字节
UTF-8

根据不同的符号自动选择编码的长短, 英文用一个字节,汉字用两个

url编码

浏览器URL只能使用英文字母、阿拉伯数字和某些标点符号,
网址要使用汉字只能编码后使用

url编码其实就是一个字符ascii码的十六进制, 前面加上“%”
“\”的url编码就是%5c

Base32/64/58

基于32/64/58个可打印字符来表示二进制数据的方法
就是把 二进制 --转换为–> 字符

base32的编码表是由(A-Z、2-7)32个可见字符构成,“=”符号用作后缀填充。
base64的编码表是由(A-Z、a-z、0-9、+、/)64个可见字符构成,“=”符号用作后缀填充。
base58的编码表相比base64少了数字0,大写字母I,O,小写字母 l (这个是L),以及符号‘+’和‘/’

1234567 --base32编码–> GEZDGNBVGY3Q====
特征:大写字母和数字,不满5的倍数,用‘=’补齐。
1234567 --base64编码–> MTIzNDU2Nw==
特征:大小写字母和数字,不满3的倍数,用‘=’补齐。
1234567 --base58编码–> 2s8YYFs4Vc

算法位数加密后字符特点/用途
base16原先的2倍数字0-9,大写字母A-F就是16进制转ASCII
base32原先的8/5倍大写字母(A-Z)数字234567字符不足用“=”补齐
base64转换后比原有的字符串长1/3大写字母(A-Z),小写字母(a-z),数字(0-9)以及+/字符不足用“=”补齐
ROT5数字(0-9)只对数字进行编码,用当前数字往前数的第5个数字替换当前数字:0>5, 1>6

对称加密算法

使用同一套密钥进行加密和解密

P:明文
C:密文

DES

  • 参数
    • 密钥key 7个字节(56位)
    • 数据data 8个字节(64位)
  • 加密方法EncodeKey
    C=Ek( P )
  • 解密方法DecodeKey
    P=Dk( C )

3DES

  • 参数
    • 密钥 3个7字节的key
  • 加密方法
    C=Ek3( Dk2( Ek1( P ) ) )
  • 解密方法
    P=Dk1( EK2( Dk3( C ) ) )

SM1

国密 硬件实现

SM4

国密 软件实现

AES

密钥名称128、192、256位

RC5

IDEA

Blowfish


非对称加密算法

每个密码以私钥(secret key)和公钥(public key)成对出现,
公钥加密,私钥解密,反之亦然
相对于对称加密,速度很慢,一般不用于加密,而是秘钥交换

SM2

国密

RSA

Rabin

El Gamal

椭圆曲线算法(ECC)


摘要算法/ 单向加密/ 散列加密/ 哈希算法

只能加密不能解密

MD5

输出长度为 128bits 的一个串 (通常用 16 进制 表示为 32 个字符)
由数字“0-9”和字母“a-f”所组成的字符串

  • 每次加密后的密文其实都是一样的,这样就方便了MD5通过大数据的方式进行破解。

SM3

国密

MAC

带秘密密钥的Hash函数

兼容了MD和SHA算法的特性,并在此基础上加上了密钥

SHA-1

40个字符

SHA-2(SHA-224、SHA-256、SHA-384,和SHA-512)

SHA-3

SCrypt算法

核心思想是“哈希计算需要更大的内存空间和时长”

追求更大的内存消耗和计算时间,以有效阻止ASIC专用矿机。

BCrypt 算法

生成的密文是60位

主要是能实现每次加密的值都是不一样

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
前端常用加密算法包括: 1. 对称加密算法:如AES(Advanced Encryption Standard)、DES(Data Encryption Standard)和3DES(Triple Data Encryption Standard),特点是加密解密速度快,但密钥安全性较低。 2. 非对称加密算法:如RSA(Rivest-Shamir-Adleman)和ECC(Elliptic Curve Cryptography),特点是加密解密速度较慢,但密钥安全性较高。 3. 哈希算法:如MD5(Message-Digest Algorithm 5)和SHA(Secure Hash Algorithm),特点是不可逆且不同的明文生成的哈希值相同的概率极小。 4. 对称加密算法与非对称加密算法结合使用:如SSL(Secure Socket Layer)和TLS(Transport Layer Security),通过使用对称加密算法加密通信过程中的数据,使用非对称加密算法加密密钥,从而兼顾了加密速度和密钥安全性。 常用加密算法的特点主要包括: 1. 加密强度:指加密算法对攻击者破解的难度,一般用密钥长度来衡量,密钥长度越长,加密强度越高。 2. 加密速度:指加密算法对数据加密、解密的速度,一般对称加密算法速度较快,非对称加密算法速度较慢。 3. 密钥管理:指加密算法对密钥生成、存储、分发和更新的支持程度,一般非对称加密算法需要密钥管理较为复杂。 4. 可逆性:指加密算法是否支持加密后数据可逆解密,对称加密算法和非对称加密算法的可逆性不同。 5. 安全性:指加密算法的安全性是否被攻击者破解,一般安全性高的加密算法需要较高的加密强度和密钥管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xyc1211

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

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

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

打赏作者

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

抵扣说明:

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

余额充值