开放平台之敏感数据加密处理

文章介绍了如何按照国家个人信息保护法的要求,使用AES-256-CBC加密算法对身份证号和姓名等敏感参数进行加密,以保护用户数据安全。示例代码展示了如何用Ruby进行加密操作,并在HTTP请求中添加必要的Header字段。
摘要由CSDN通过智能技术生成

目录

敏感参数加密传输

规则

参数加密步骤

下面以ruby代码举例:


敏感参数加密传输

根据目前国家个人信息保护法的最新要求,个人信息在使用的过程中我们需要采取相应的加密等安全技术措施来保障,如果正好您有这方面的需要,您可以对二要素参数进行加密传输

规则

目前仅支持idnumbername的参数加密,也就是身份证号姓名字段
目前仅支持一种 加 密 算 法:AES-256-CBC

参数加密步骤

  1. 对上述参数的值进行了AES-256-CBC加密操作,得到加密后的字符串encrypted_str
    1. 将开放平台分配的API_KEY作为key
    2. 将开放平台分配的API_SECRET的前16位作为iv偏移量
  2. encrypted_str进行Base64编码,编码规范:RFC 4648
  3. 在请求Header参数中添加Encrypted,值为:true

下面以ruby代码举例:

class Example
   def request
      name = "李四" # 姓名
      id_number = "123456789912345678" # 身份证号

      api_key = "1ba72570d6ee47618c4114c5f6db4557" # 开放平台分配的API_KEY
      api_secret = "17c65863310d4a34b391c1a7178a247e" # 开放平台分配的API_SECRET

      uri = URI('请求URL')
      data = {
              "name": aes_256_cbc_encrypt(name, api_key, api_secret), # => pHo410+lumhbYvavFBnCsA==
              "idnumber": aes_256_cbc_encrypt(id_number, api_key, api_secret) # => XYde2/2HzLIviVU8WzP9lbh7RpjLiP2/EqjlzmqWmEk=
      }
      header = {
              "Encrypted": "true", # 表示启用参数加密
              "Authorization": "key=1ba72570d6ee47618c4114c5f6db4557,timestamp=1540539270,nonce=xxx,signature=xxx"
      }
      res = Net::HTTP.post(uri, data.to_json, header) # 发起请求
      puts res.body
   end

   def aes_256_cbc_encrypt(data, key, iv)
      cipher = OpenSSL::Cipher.new('aes-256-cbc')
      cipher.encrypt
      cipher.key = key # 将API_KEY作为key
      cipher.iv = iv[0..15] # 将API_SECRET的前16位作为iv偏移量
      result = cipher.update(data) + cipher.final
      Base64.strict_encode64(result)
   end
end

好了,今天的开放平台之敏感数据加密处理就完成了

欢迎大家点击下方的卡片,关注《coder练习生》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ybb_ymm

你的鼓励会是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值