浅谈加密算法
2015-11-01 23:06
316 查看
常用的加密算法有对称加密和非对称加密,对称就是用加密的公式的算法的逆运算来解密,其安全性相对于非对称加密低。
非对称就是 加密的时候用一套算法,解密的时候不是加密算法的逆运算,而是不搭边的另一套(借用流行的一句话叫做不按套路出牌)。
下文是比较具体的介绍!
在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等。
不同算法的实现机制不同,可参考对应算法的详细资料。
对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。
对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
非对称加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。
对于公司的网站或者app,如果是普通的,那么随便搞个md5加密就行了,而对于有特殊要求的app,比如支付宝、公司钱包等,这些涉及到钱的东西的加密措施就要注意了,用普通的加密方式很容易被黑客截获用户数据,一不小心就会给企业带来巨大损失(用户的钱在你的app中丢了,如果还想继续经营,你自然要赔)。 当涉及到这种金融方面的时候,就要用专业的加密,常用的有硬件加密和软件加密。硬件加密主要是加密机加密。软件加密当然就是程序算法加密了,不过这两种方式都要通过加密公司获得(除非你本身就是个加密公司),需要用钱买的。
特殊加密的价格方面,一般一个加密控件以万元为单位计算,一套完整的加密系统有些甚至高达百万或更多。
未完待续。。。
非对称就是 加密的时候用一套算法,解密的时候不是加密算法的逆运算,而是不搭边的另一套(借用流行的一句话叫做不按套路出牌)。
下文是比较具体的介绍!
在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等。
不同算法的实现机制不同,可参考对应算法的详细资料。
对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。
对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
非对称加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。
对于公司的网站或者app,如果是普通的,那么随便搞个md5加密就行了,而对于有特殊要求的app,比如支付宝、公司钱包等,这些涉及到钱的东西的加密措施就要注意了,用普通的加密方式很容易被黑客截获用户数据,一不小心就会给企业带来巨大损失(用户的钱在你的app中丢了,如果还想继续经营,你自然要赔)。 当涉及到这种金融方面的时候,就要用专业的加密,常用的有硬件加密和软件加密。硬件加密主要是加密机加密。软件加密当然就是程序算法加密了,不过这两种方式都要通过加密公司获得(除非你本身就是个加密公司),需要用钱买的。
特殊加密的价格方面,一般一个加密控件以万元为单位计算,一套完整的加密系统有些甚至高达百万或更多。
未完待续。。。
相关文章推荐
- leetcode笔记:Triangle
- C#中IDisposable
- iOS支付宝集成步骤;王刚韧的技术博客
- spring事务管理
- JSON的结构
- 命令 cd
- 软RAID管理命令mdadm详解
- 好的开始是成功的一半。
- 数据提供与访问
- JavaScript高级程序设计之DOM之节点层次之Comment类型第10.1.5讲
- 关于开发定位导航软件中间件的思考
- c语言二进制八进制和十六进制的总结
- 看一看出国的人
- 如何实现跨应用启动Service
- C#原子操作 Lock用法
- 11.Curator扩展库
- lightoj 1258(manacher)
- codeforces 543A Writing Code (dp)
- Linux下彻底关闭某个RAID磁盘阵列
- hadooop 之 FileInputFormat 类