使用加密算法不当的一些原则

本文列举了软件安全领域常见的编程错误及建议,包括不适用DES算法因其密钥过短;3DES逐渐被淘汰;RSA及DH算法的密钥长度应超过1024位;避免使用RC4等流加密算法;使用哈希时应注意连接字符串导致的问题;不推荐ECB加密模式;处理已知明文时的注意事项等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从《软件安全的二十四宗罪编程瑕疵与如何纠正》第21章翻译而来。

1 不能使用DES算法。密钥太短,只有56位。

2 112位的3DES也不推荐使用。它在FIPS(Federal Information Processing Standards)中已经失去地位了。

3 RSA、DH算法中密钥材料长度应该大于1024.

4 不推荐使用流加密算法,尤其是RC4(如果存在两段明文相同,则XOR就会成为两端明文的XOR).一般可以用AES+分组密码转化为流模式的方式模拟。

5 使用Hash时不要使用两个变量字符连接后在哈希。如此,ABCD+EFG和ABC+DEFG的哈希值是一样的。为了防止出现此种情况,可在中间加上一个连字符。另外,考虑到hash length extension attacks。尽量使用HMAC。可参考下面的链接:http://utcc.utoronto.ca/~cks/space/blog/programming/HashLengthExtAttack

6 不要使用ECB加密模式。两个明文加密后的密文是一致的。

7 不要加密已知的明文。

8 采用salt和IV。

9 即使有时为了能随机访问密文中的一段,使用了RC4,也需要提供完整性保护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值