全球亚文化俱乐部联盟 技术文档 1:IC 卡存储流程说明
# 全球亚文化俱乐部联盟 技术文档 1:IC 卡存储流程说明
## 1. 先将以下数据存入到一个 MessagePack
- 研究员 GPC 编号(仅在转据点/转队/转俱乐部时才会发生变更,不可手动修改。在 GPC40 下,二进制形式,64 比特,也就是 8 字节;实际上当新版本 GPC 公布时,GPC 编号占用的字节数可能发生变化)
- GPC 版本(不可手动修改,仅当 GSCU 公布新版本 GPC 时才会发生变更。不超过 24 字节)
- 昵称(或者说"代号",可手动修改。不超过 120 字节)
- GSCU 电子钱包 GSD 余额(不可手动修改,仅在完成交易之后发生变更,以 u 为单位。用一个 16 字节(128 位)有符号整数表示。范围大约是-1.70x10^38 至 1.70x10^38 之间,若转换为 GSD,则是-1.70x10^32 GSD 至 1.70x10^32 GSD。1.70x10^32 GSD 非常巨大,若按 1 GSD = 1.5 USD,那就是 2.55x10^32 USD,相当于太阳价值的 0.2 倍至 8.4 倍)(太阳含有 1.47x10^30 kg 的氢(含 4.9x10^25 kg 氘)、4.94x10^29 kg 的氦(含 6.2x10^25 kg 氦-3)和 2.66x10^28 kg 重元素(O、C、Ne、Fe、Si、Mg、S、......),若按普通氢每千克 2 美元,氘每千克 12500 美元,普通氦每千克 50 美元,氘每千克 2000 万美元,重元素每千克 100 美元来算,总价值约为 1.27x10^33 美元,2.55x10^32 仅仅是它的 20%;若不算氘和氦-3,则总价值约为 3.03x10^31 美元,2.55x10^32 是它的 8.4 倍。)
- 简介(可手动修改。不超过 3000 字节)
- 扩展内容(分为 user(可手动修改,由研究员自行添加)和 system(不可手动修改,由系统提供)两类。仅受到 IC 卡内部 NOR 芯片(或者未来会用到的 FeRAM 芯片)的总容量限制。)
示例:
研究员 GPC 编号(code):LFN2018-00121376(8255201800121376)
GPC 版本(ver):GPC40
GSCU 电子钱包余额(balance):8293.666667 GSD(8293666667)
昵称(nickname):白雪公主
简介(intro):GSCU Wiki 创建者 | 现居福建厦门
扩展内容(extend):(例如:是否为 Wiki 管理员?)
得到以下 MessagePack(以下内容是为进行教学展示,对 extend 部分(扩展内容)进行了简化的,大多数情况下,未压缩的 MessagePack 有 512 字节至 8192 字节(压缩后可能会在 300 字节至 7000 字节之间)):
```bytes
86 a4 63 6f 64 65 c4 08 00 1d 54 0f f2 d8 6c 20
a3 76 65 72 d9 05 47 50 43 34 30 a8 6e 69 63 6b
6e 61 6d 65 d9 0c e7 99 bd e9 9b aa e5 85 ac e4
b8 bb a7 62 61 6c 61 6e 63 65 c4 10 00 00 00 00
00 00 00 00 00 00 00 01 ee 57 4f 6b a5 69 6e 74
72 6f da 00 28 47 53 43 55 20 57 69 6b 69 20 e5
88 9b e5 bb ba e8 80 85 20 7c 20 e7 8e b0 e5 b1
85 e7 a6 8f e5 bb ba e5 8e a6 e9 97 a8 a6 65 78
74 65 6e 64 82 a4 75 73 65 72 de 00 00 a6 73 79
73 74 65 6d de 00 01 aa 77 69 6b 69 5f 61 64 6d
69 6e c3
```
分析:
| 字节 | 内容 | 长度 | 说明 |
| --------- | ----------------------------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------- |
| 0x00 | 86 | 1 字节 | 6 个元素:"code"、"ver"、"nickname"、"balance"、"intro"、"extend" |
| 0x01 | a4 | 1 字节 | 接下来是 4 字节字符串 |
| 0x02-0x05 | 63 6f 64 65 | 4 字节 | "code" |
| 0x06-0x07 | c4 08 | 2 字节 | 接下来是 8 字节二进制 |
| 0x08-0x0f | 00 1d 54 0f f2 d8 6c 20 | 8 字节 | GPC 编号(8255201800121376,也就是 LFN2018-00121376) |
| 0x10 | a3 | 1 字节 | 接下来是 3 字节字符串 |
| 0x11-0x13 | 76 65 72 | 3 字节 | "ver" |
| 0x14-0x15 | d9 05 | 2 字节 | 接下来是 5 字节字符串 |
| 0x16-0x1a | 47 50 43 34 30 | 5 字节 | GPC 版本("GPC40") |
| 0x1b | a8 | 1 字节 | 接下来是 8 字节字符串 |
| 0x1c-0x23 | 6e 69 63 6b 6e 61 6d 65 | 8 字节 | "nickname" |
| 0x24-0x25 | d9 0c | 2 字节 | 接下来是 12 字节字符串 |
| 0x26-0x31 | e7 99 bd e9 9b aa e5 85 ac e4 b8 bb | 12 字节 | 昵称("白雪公主") |
| 0x32 | a7 | 1 字节 | 接下来是 7 字节字符串 |
| 0x33-0x39 | 62 61 6c 61 6e 63 65 | 7 字节 | "balance" |
| 0x3a-0x3b | c4 10 | 2 字节 | 接下来是 16 字节二进制 |
| 0x3c-0x4b | 00 00 00 00 00 00 00 00 00 00 00 01 ee 57 4f 6b | 16 字节 | GSCU 电子钱包 GSD 余额(例如给定内容为 8293666667,也就是 8293.666667 GSD) |
| 0x4c | a5 | 1 字节 | 接下来是 5 字节字符串 |
| 0x4d-0x51 | 69 6e 74 72 6f | 5 字节 | "intro" |
| 0x52-0x54 | da 00 28 | 3 字节 | 接下来是 40 字节字符串 |
| 0x55-0x7c | 47 53 43 55 20 57 69 6b 69 20 e5 88 9b e5 bb ba e8 80 85 20 7c 20 e7 8e b0 e5 b1 85 e7 a6 8f e5 bb ba e5 8e a6 e9 97 a8 | 40 字节 | 简介(例如给定内容为"GSCU Wiki 创建者 \| 现居福建厦门") |
| 0x7d | a6 | 1 字节 | 接下来是 6 字节字符串 |
| 0x7e-0x83 | 65 78 74 65 6e 64 | 6 字节 | "extend" |
| 0x84 | 82 | 1 字节 | "extend"内 2 个元素:"user"和"system" |
| 0x85 | a4 | 1 字节 | 接下来是 4 字节字符串 |
| 0x86-0x89 | 75 73 65 72 | 4 字节 | "user" |
| 0x8a-0x8c | de 00 00 | 3 字节 | "user"内 0 个元素 |
| - | - | 0 字节 | (还没有任何内容) |
| 0x8d | a6 | 1 字节 | 接下来是 6 字节字符串 |
| 0x8e-0x93 | 73 79 73 74 65 6d | 6 字节 | "system" |
| 0x94-0x96 | de 00 01 | 3 字节 | "system"内 1 个元素:"wiki_admin" |
| 0x97 | aa | 1 字节 | 接下来是 10 字节字符串 |
| 0x98-0xa1 | 77 69 6b 69 5f 61 64 6d 69 6e | 10 字节 | "wiki_admin" |
| 0xa2 | c3 | 1 字节 | TRUE |
长度统计:
GPC 编号:8 字节
GPC 版本:5 字节
昵称:12 字节
余额数值:16 字节
简介:40 字节
扩展内容(user):0 字节
扩展内容(system):12 字节
框架内容:70 字节
总计:163 字节
## 2. 然后,压缩数据:以级别 9 的 GZIP,或者以 LZMA,对 MessagePack 进行压缩。当然,也可以跳过此步骤,直接进入加密步骤
## 3. 最后,通过 AES256 进行加密,存入 NOR 芯片(或者 FeRAM 芯片)
@MarchBeta2087
Writer