如何选择加密算法

作为一个数学一般, 又不是安全相关专业的程序猿. 每次碰到需要加密的时候都不知道如何选择一种合适的加密的算法. 总结一下图解加密算法书中对各个算法的评价. 以后需要选择的时候也有了依据.

首先需要了解密码的一些常识与原则.

  1. 不要使用保密的密码算法.
  • 不要试图通过保密算法来提高安全性.
  • 不要使用自己发明的算法
  1. 使用低强度的密码比不使用密码更不安全
  2. 任何密码总有一天会被破解(除了随机密码本)
  3. 密码只是信息安全的一部分

单向散列函数

单向散列函数也称哈希函数, 单向散列函数的评价标准就是抗碰撞性. 抗碰撞性分为强和弱两种:

  • 强碰撞性: 要找到散列值相同的两条不同的消息是非常困难
  • 弱碰撞性: 要找到和一个消息散列值相同的另一个消息是非常困难

常见的 Hash 算法有: MD4/MD5, SHA-1/SHA-2/SHA-3, RIPEMD-160. 格式算法的情况如下:

|算法|强碰撞性被攻破|推荐度|
|:--- :|:----------------:|:-------:|
|MD4/MD5 |是 |不推荐使用|
|SHA-1 |是 |不应该被用于新环境中|
|SHA-2 |否 |推荐使用|
|SHA-3 |否 |推荐使用|
|RIPEMD-160 |否 |可以使用|

综上所述, 需要使用散列函数的时候最好选择 SHA-2 和 SHA-3, RIPEMD-160 也可以选择, 但是实际使用范围没有 SHA-2 和 SHA-3 广.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇文章主要讲述在Mobile BI(移动商务智能)开发过程中,在网络通信、数据存储、登录验证这几个方面涉及的加密...
    雨_树阅读 2,640评论 0 6
  • 前言 《图解密码技术》一书介绍了很多关于密码的知识,通读一遍需要不少时间。为了方便学习,我对书中关键的部分进行了总...
    咖枯阅读 7,250评论 1 25
  • 在开发应用过程中,客户端与服务端经常需要进行数据传输,涉及到重要隐私安全信息时,开发者自然会想到对其进行加密,即使...
    闲庭阅读 3,294评论 0 11
  • 版本记录 前言 在这个信息爆炸的年代,特别是一些敏感的行业,比如金融业和银行卡相关等等,这都对app的安全机制有更...
    刀客传奇阅读 1,772评论 0 2
  • 每一次(所谓的)后悔, 其实都是(为了)再一次回味。 你仍旧贪恋余味, 因为你于心有愧。
    段童阅读 189评论 0 2