010-0001 常见加密概念

 编码格式:

信息从一种格式转化成另一种格式,双向。(并非加密,不涉及到密钥)

 

 ASCII编码(8位)

Unicode编码(16位,32位)

GB2312编码

BIG5编码

Base64编码

Zip,WinZip……

 

散列运算(Hash):

不固定长度的信息计算成固定长度的散列值。应该是不可逆,快速,无散列碰撞(md4,md5,sha1都有这个问题)。

 

常见的加密算法问题表:(截止2009)

 

md4 散列长度128  不安全

md5 散列长度128  不安全

sha0 散列长度160 不安全

sha1 散列长度160 不太安全(山大的女教授已经验证了上述算法的碰撞问题)

sha256/224 散列长度256/224 安全

sha512/382 散列长度512/382 安全

 

 

数字签名:

散列加密的要点:运算前加盐!

利用散列值加密密码:构建更安全合理的安全网络应用。

 

对称加密:

加密解密都用同一个密钥。

概念IV:初始化向量(第一块儿人工指定)。

常见的对称加密算法:

DES 1976 容易破解 效率高

TripleDES 1978 不容易破解 效率中

AES(旧称Rijndael) 1998 不易破解 效率高 (长度可选128/192/256 建议使用256)

TwoFish 1998

 

非对称加密:

使用公密钥和私密钥

 

有单向的关系

私密钥可算出公密钥,但是公密钥算不出私密钥。(利用质数的运算原理,两个大质数的乘积的分解算法问题,2~质数的开方值。还有其他的圆周曲线算法等)

公开密钥加密,必须用私有密钥解密。(普通应用)

反过来,私有密钥加密,必须用公开密钥解密。(数字签名)

 

几种常见的非对称加密算法:

RSA 密钥长度1024/2048/5096 1977年 512以下不安全 效率低

DSA 密钥长度512/1024/2048/3072 1991年 安全 效率高

 

典型应用: https ssl

 

补充:随机数生成(不是利用时间种子的老随机数生成方法,没有保密性,老一代的随机数发生器不符合密码学的应用场景)

考虑到密码学的支持。

要使用System.Security.Cryptography命名空间中的随机数发生器!

byte[] random = new byte[1];

RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();

rng.GetBytes(random);

int i = Convert.ToInt32(random[0]);

 

总结:

如果您对上述介绍感到烦躁冗余的话,请参考下面几点建议:

 

哈希算法:推荐sha2(别忘了加盐啊)

对称加密算法:推荐tripledes,aes(没有老系统兼容问题的话,尤其推荐)

非对称加密算法:效率相对低,推荐DSA,并和对称加密配合使用

效率上 哈希算法>对称加密>>非对称加密

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值