就 CryptoJS 提供的几种加密算法,哪种是最安全的?

2015-10-30 01:32:22 +08:00
 abelyao
实在有点累,做一下伸手党吧,希望有对加密算法比较了解的 V 友帮忙看一下:
- MD5
- SHA-1
- SHA-256
- AES
- Rabbit
- MARC4
- HMAC
- HMAC-MD5
- HMAC-SHA1
- HMAC-SHA256
- PBKDF2

如果既要考虑效率,又要考虑安全性,应该选哪个?
如果仅考虑安全性的话又是哪个呢?
谢谢~

附上 github 地址: https://github.com/brix/crypto-js
3573 次点击
所在节点    编程
3 条回复
yyfearth
2015-10-30 04:04:32 +08:00
前提是 你要干嘛?
加密内容原文 还是散列
这些算法分好几类的 目的也不同
breeswish
2015-10-30 09:30:43 +08:00
MD5/SHA 系列是散列,用于将一个消息不可逆且能重复地转换为“散列值”——如用于存储密码

HMAC 系列是消息验证,用于验证一个消息是否被篡改——如网站上传递 email 和 hmac(email),则接收时可以通过 hmac(email) 获知 email 是否是用户伪造的

AES 系列是加密——大概是最符合你描述的?

然而 AES 还有各种不同的加密模式,使用不安全的加密模式或姿势不正确甚至如果没有做好异常处理都会导致加密不安全,甚至可能完全泄露明文。简单来说建议楼主使用 AES-CBC 或 AES-CTR ,并确保每次加密使用的 iv 不一样(例如可以使用高强度随机数生成器生成 iv )。解密时候注意做异常处理。
abelyao
2015-10-30 13:39:30 +08:00
@yyfearth @breeswish
感谢两位朋友,我是想对文件进行加密,大部分为图片文件,估计是时候 AES 最合适了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/232164

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX