在对外发布服务接口的时候, 需要定制一套签名机制, 保证数据传递的有效性。
1 安全机制的设计方案
1.1 单向加密
在理论上, 从明文加密到密文后, 不可反向解密的。
可以从迭代和加盐的方式尽可能保证加密数据不可反向解密。
传递敏感数据的时候使用的。如: 密码。
在金融相关交易中, 用户密码是敏感数据, 其他数据是非敏感数据。所有的金融相关的应用中, 客户端都有一个独立的密码输入控件。这个控件就是做单向加密的。
使用单向加密的时候, 传递的数据只有密文, 没有明文, 也没有密钥。
1.2 双向加密
是可以实现加密和解密双向运算的算法。需要通过密钥实现加解密计算的。
密钥种类: 公钥、私钥。
公钥: 可以对外公开的, 就是可以在网络中传递的。
私钥: 必须保密的, 绝对不会对外暴露的。
在传递安全数据的时候使用。所谓安全数据, 就是不可篡改的数据。如: 金融交易中的收款人卡号, 转账的金额, 货币的种类等。
使用双向加密的时候, 传递的有明文, 密文, 公钥。
1.2.1 对称加密
只有一个密钥, 就是公钥。
1.2.2 非对称加密
有两个密钥, 公钥和私钥。
2 DES加密
DES的密文是非定长密文。根据明文数据和key数据动态伸缩的。
3 AES加密
AES的key要求长度为16。
4 使用场景
DES和AES在使用场景上没有区别。
传递非敏感的安全性数据可以使用。如: QQ通讯录获取, 微信中的消息传递。
5 对比
DES - 加密后的数据是16的整数倍。 是16字节整数倍。
AES - 要求key的长度必须是16字节。 AES相对效率较低, 但是可以通过偏移量强化加密。