1 什么是数据加密
1.1 数据加密的定义
数据加密又称密码学,它是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。
1.2 加密方式分类
数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,这就需要给数据发送方和接受方以一些特殊的信息用于加解密,这就是所谓的密钥。其密钥的值是从大量的随机数中选取的。按加密算法分为对称密钥和非对称密钥两种。
1.2.1 对称密钥
1.2.2 非对称密钥
值得注意的是,能否切实有效地发挥加密机制的作用,关键的问题在于密钥的管理,包括密钥的生存、分发、安装、保管、使用以及作废全过程。
1.3 对称和非对称加密的区别
对称加密算法
- 优点: 算法公开、计算量小、加密速度快、加密效率高
- 缺点: 在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。
非对称加密算法
- 优点: 安全
- 缺点: 速度较慢
2 加密方案原则
2.1 接口安全要求
- 1.防伪装攻击(案例:在公共网络环境中,第三方 有意或恶意 的调用我们的接口)
- 2.防篡改攻击(案例:在公共网络环境中,请求头/查询字符串/内容 在传输过程被修改)
- 3.防重放攻击(案例:在公共网络环境中,请求被截获,稍后被重放或多次重放)
- 4.防数据信息泄漏(案例:截获用户登录请求,截获到账号、密码等)
2.2 设计原则
- 1.轻量级
- 2.适合于异构系统(跨操作系统、多语言简易实现)
- 3.易于开发
- 4.易于测试
- 5.易于部署
- 6.满足接口安全需求(满足接口安全1,2,3),无过度设计。
2.3 适用范围
- 1.所有写操作接口(增、删、改 操作)
- 2.非公开的读接口(如:涉密/敏感/隐私 等信息)
3 数据加密解决方案

3.1 客户端
客户端使用RSA + AES对重要信息进行加密。客户端加密过程主要分为以下三个步骤:
- 1.客户端随机产生AES的密钥;
- 2.对身份证信息(重要信息)进行AES加密;
- 3.通过使用RSA对AES密钥进行公钥加密。
这样在传输的过程中,即时加密后的AES密钥被别人截取,对其也无济于事,因为他并不知道RSA的私钥,无法解密得到原本的AES密钥,就无法解密用AES加密后的重要信息。
3.2 服务端
服务端使用RSA + AES对重要信息进行解密。服务端解密过程主要分为以下两个步骤:
- 1.对加密后的AES密钥进行RSA私钥解密,拿到密钥原文;
- 2.对加密后的重要信息进行AES解密,拿到原始内容。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225486.html原文链接:https://javaforall.net
