V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
abelyao
V2EX  ›  编程

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

  •  1
     
  •   abelyao · 2015-10-30 01:32:22 +08:00 · 3564 次点击
    这是一个创建于 3104 天前的主题,其中的信息可能已经有所发展或是发生改变。
    实在有点累,做一下伸手党吧,希望有对加密算法比较了解的 V 友帮忙看一下:
    - MD5
    - SHA-1
    - SHA-256
    - AES
    - Rabbit
    - MARC4
    - HMAC
    - HMAC-MD5
    - HMAC-SHA1
    - HMAC-SHA256
    - PBKDF2

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

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

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

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

    然而 AES 还有各种不同的加密模式,使用不安全的加密模式或姿势不正确甚至如果没有做好异常处理都会导致加密不安全,甚至可能完全泄露明文。简单来说建议楼主使用 AES-CBC 或 AES-CTR ,并确保每次加密使用的 iv 不一样(例如可以使用高强度随机数生成器生成 iv )。解密时候注意做异常处理。
    abelyao
        3
    abelyao  
    OP
       2015-10-30 13:39:30 +08:00
    @yyfearth @breeswish
    感谢两位朋友,我是想对文件进行加密,大部分为图片文件,估计是时候 AES 最合适了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2988 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 00:33 · PVG 08:33 · LAX 17:33 · JFK 20:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.