Day 6 - 产生内文加密所需的 IV 值

图 6-1
图 6-1: 各栏位资料范例

发送给 Order API 的栏位资料只差 Message 栏位了。我们再来复习一下发送给 API 的各栏位取得方法及说明,以加深印像。

栏位名称 取得方法 说明
Version 技术客服提供 固定值: 1.0.0
ShopNo 技术客服提供 商店代码
APIService 文件第 5 页 API 服务
Sign 商店用户自行产生 产生方法请参阅 Day 3: HashId、Day 4: 讯息内文杂凑、Day 5:产生 SHA256 加密後的 Sign。
Nonce API平台提供 取得方法请参阅 Day 2
Message 商店用户自行产生 产生方法请参阅本篇文章

接着查阅 API 文章关於产生 Message 的方法。

图 6-2
图 6-2: 文件条目,第五章节第五段

IV 用途

IV (initialization vector),中文翻为初始向量,为了避免加密的内容被破解而在加密时加入的乱数值。

图 6-3
图 6-3: 文件第 22 页,IV 计算说明

为确保这个乱数够乱,且商店用户端和 API 平台两边的 IV 一致,可成功解密加入後的内容,IV 值由 API 平台提供的 Nonce 值经过处理取得。

由於 IV 是从 Nonce 计算而出,而 Nonce 的效期为 60 秒,等同於 IV 值的效期也同为 60 秒,提高加密的安全性。

IV 计算

PHP 的开发者可使用 hash 函式使用 SHA256 模式来加密 Nonce,接着截取加密後的字串从右边算过来倒数 16 个字元即为 IV 值。

图 6-4
图 6-4: PHP 范例,计算 IV 值

截取字串的函式可使用 substr。以上为 PHP 程序范例。

流程总结

总结今天的文章,整个计算 IV 的流程可简化为下图:

图 6-5
*图 6-5: 计算 IV 流程示意图

现在我们已经很清楚知道 IV 的用途和计算的方法,也已经有了HashId 作为加密用的 Key,所需条件皆已准备好了,明天就可以开始进行 Message 栏位的处理罗 ^^


<<:  [机派X] Day 8 - 我是 Bash 我调皮,令人匪夷所思的 Bash 语法

>>:  DAY08 - Emmet与PUG简介

Trouble with Distributed Systems (4-1) - Truth and Lies

前几天讲了跟分散式系统有关的网路不可靠、时钟不可靠的鬼故事,不可靠的东西这麽多,我们要如何判断真与假...

Day 3 - 原型 (2) : 主页元件

设置 先在Figma中建立2个页面(Page), 名字分别为Blog跟Components(元件)。...

《Day 29》【软件资料库】SQLServer 镜像建置PART 2

倒数第二天罗!赛程最终第二十九天~ 再次分享专业的资料库建置~ 大家可以参考文章如下 https:/...

REG档撰写—登录档脚本其实不难

今天要来介绍的是.reg文件的写法,要实作前请记得先做好备份喔! 这是当作给自己最後的作业,对登录档...

Android学习笔记03

Recyclerview Recyclerview在App开发中十分常见,接下来就用kotlin来呈...