加密解密算法总结分析
2017-06-27 17:16
302 查看
写代码的时候,一般情况下需要对部分传输的数据做加密或者签名。
(1)关键数据需要做加密处理。
(2)非关键数据则不需要加密,只需要将需要传送的数据加上签名即可。
加解密的原理:
对称加密:
原理:在加密和解密时使用的是同一个秘钥!具体做法就是用密钥进行混淆、换位等运算来进行加密、解密。
优缺点:加密速度快!如果单纯使用这种方式,密钥容易被暴力破解。
可是很多场合需要用到它,那么可以通过以下方式提高加密级别,这样就很难破译了。原理嘛,就像以前间谍战里用到的密码本,这种方式的加密、解密用到的都是同一个密码本,非常厉害,如果找不到密码本,基本上永远无法破译。
(1)可加入专门的密码表混淆加密,比如说专门生成一张密码表存到一个位置,每次加密时,将它与需要加密的内容合在一起,然后加密。
(2)加入salt,比如随机生成一个md5串,与加密的内容合到一起,然后加密。
非对称加密:
原理:取两个大的素数,然后把他们相乘,就可以得到更大的一个数字。将这个大数作为公开密钥,然后将其中一个素数作为私有密钥!这时候公钥随便加密,但是只有私钥才能解密。或者用私钥加密后,只有公钥才能解开。这时,光知道公钥,基本上很难算到是哪两个素数相乘的。这就是不对称算法。这个东西出来有50年了,数学家实在令人...羡慕!
在这里还想多叨叨一句,很早以前,计算机永远无法生成真正的随机数,都是伪随机数,有规律可循。而...最近竟然又有科学家说能让计算机生成真正的随机数...计算机是一种可确定,可预测的的设备,想通过一行一行的确定的代码自身产生真随机,显然不可能。只能通过引入外界的真随机,软硬结合,才有这个可能!比如量子力学可以解决这个问题。原子、电子的震动是真随机...抛硬币也是真随机...
巧妙运用公开密钥、私有密钥对内容进行加密、解密。这样更安全,破译难度更大,但是缺点是速度慢,只能对少量内容加密或做签名!
签名处理:
签名处理一般都是非对称加密,只能加密,不能反向解密。
私钥只有一份,存在本公司。其他外部系统只需用公钥解密即可。
再简单一点,就是直接用MD5加密:直接设置一个大家都共用的一个key,将数据做MD5加密处理,所有其他系统的接口,也都共用这个key。这样其实不太安全,一个系统的key泄露,其他全都泄露了。不如非对称加密中的私钥、公钥安全。
(1)关键数据需要做加密处理。
(2)非关键数据则不需要加密,只需要将需要传送的数据加上签名即可。
加解密的原理:
对称加密:
原理:在加密和解密时使用的是同一个秘钥!具体做法就是用密钥进行混淆、换位等运算来进行加密、解密。
优缺点:加密速度快!如果单纯使用这种方式,密钥容易被暴力破解。
可是很多场合需要用到它,那么可以通过以下方式提高加密级别,这样就很难破译了。原理嘛,就像以前间谍战里用到的密码本,这种方式的加密、解密用到的都是同一个密码本,非常厉害,如果找不到密码本,基本上永远无法破译。
(1)可加入专门的密码表混淆加密,比如说专门生成一张密码表存到一个位置,每次加密时,将它与需要加密的内容合在一起,然后加密。
(2)加入salt,比如随机生成一个md5串,与加密的内容合到一起,然后加密。
非对称加密:
原理:取两个大的素数,然后把他们相乘,就可以得到更大的一个数字。将这个大数作为公开密钥,然后将其中一个素数作为私有密钥!这时候公钥随便加密,但是只有私钥才能解密。或者用私钥加密后,只有公钥才能解开。这时,光知道公钥,基本上很难算到是哪两个素数相乘的。这就是不对称算法。这个东西出来有50年了,数学家实在令人...羡慕!
在这里还想多叨叨一句,很早以前,计算机永远无法生成真正的随机数,都是伪随机数,有规律可循。而...最近竟然又有科学家说能让计算机生成真正的随机数...计算机是一种可确定,可预测的的设备,想通过一行一行的确定的代码自身产生真随机,显然不可能。只能通过引入外界的真随机,软硬结合,才有这个可能!比如量子力学可以解决这个问题。原子、电子的震动是真随机...抛硬币也是真随机...
巧妙运用公开密钥、私有密钥对内容进行加密、解密。这样更安全,破译难度更大,但是缺点是速度慢,只能对少量内容加密或做签名!
签名处理:
签名处理一般都是非对称加密,只能加密,不能反向解密。
私钥只有一份,存在本公司。其他外部系统只需用公钥解密即可。
再简单一点,就是直接用MD5加密:直接设置一个大家都共用的一个key,将数据做MD5加密处理,所有其他系统的接口,也都共用这个key。这样其实不太安全,一个系统的key泄露,其他全都泄露了。不如非对称加密中的私钥、公钥安全。
相关文章推荐
- 各种密码体制加密解密的算法函数总结
- PHP-可逆加密解密算法总结
- JavaScript加密解密7种方法总结分析
- JavaScript加密解密7种方法总结分析
- 基于.NET 的 加密 解密 算法总结[一]
- ASP.NET中的加密与解密 【分析总结】ASP.NET中的状态管理原理
- [★]基于.NET 的 加密 解密 算法总结[一]
- 常见密码算法总结--(4)加密模式的openssl代码分析之cfb模式
- JavaScript加密解密7种方法总结分析
- [★]基于.NET 的 加密 解密 算法总结[二]
- php实现弗吉尼亚算法加密解密以及重合指数分析
- 常见密码算法总结--(3)加密模式的openssl代码分析之cbc模式
- SAM的散列存储加密解密算法以及SYSKEY的计算
- 提供一个基于.NET SymmetricAlgorithm 类的、带私钥的加密/解密算法的包装类
- Linux学习总结—进程切换和调度算法深入分析
- 高手总结分析如果利用baidu分词算法分析之二(转)
- 跨语言平台的RSA加密、解密、签名、验证算法的实现
- 加密解密、信息摘要常用算法收集~~
- 分析java的加密与解密机制
- 加密解密、信息摘要算法收集