加密算法排排队

王安正 · · 1468 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

最近在看 Golang 的标准库,看到 crypto 中的 aesdesarssha 等等,顿时觉得熟悉又陌生,平时开发时遇到需要加密解密的时候总是看看文档 copy 过来,不求甚解,是时候把他们排排队,分分类了。

对称加密

同一个密钥

常见算法:DES、3DES、DESX、RC4、RC5、RC6和AES

DES (Data Encryption Standard) 类:最早的一批加密算法,主要用于金融和嵌入式设备,但由于用密钥(56位)过短,所以安全性受到质疑。

注:其实,编程的世界里非常注重命名,尤其是协议和规范,所以我们不能只看缩写,还是得了解一下缩写代表的是哪几个单词。

AES (Advanced Encryption Standard) 从名字上可以看出是更为安全的加密方式。

RC (Rivest Cipher) 类:Ron Rivest 是美国密码学家,此类是流加密算法,密钥长度可变。

非对称加密

双方用不同的秘钥,两个秘钥有一定的数学关系

常见算法:RSA、DSA、ECC

RSA:由于其 非常重要,所以以三位发明者的名字首字母命名。
DSA (Digital Signature Algorithm): 签名算法。
ECC (Elliptic Curve Digital Signature Algorithm): 移动设备常用算法。

散列加密

生成固定长度摘要,不可逆

常见算法:MD2、MD4、MD5、SHA、SHA1、SHA2、SHA256、SHA512、HMAC、HMAC-SHA1

MD (Message-Digest): 消息摘要类,散列算法,加密后是定长字符串,一般用于数据一致性检查,MD后面跟的数字代表版本升级。

SHA (Secure Hash Algorithm): 安全散列算法类,由 MD 类加密算法演进。

注意:MD5 和 SHA 都已被破解,当然破解不代表没啥用而是存在被破解的可能性。

HMAC (Keyed-hash message authentication code): 消息散列认证码,需要一个秘钥,数据加密的同时可以验证身份。

而 HMAC-SHA1 HMAC-SHA256 这些无非是将用于 HAMC 的秘钥先进行 SHA 加密再使用。


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:王安正

查看原文:加密算法排排队

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1468 次点击  
加入收藏 微博
上一篇:interface
下一篇:Golang编码规范
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传