消息认证。豫
yuyan · 110 行 · 6600 字节 · UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
「:
文言:消息认证者,以密钥之散列认证也。取散列摘要为基,以内外垫异或之密钥成 HMAC。
汉语:HMAC-SHA256 消息认证码。以散列摘要(SHA-256)为基,块长六四字。密钥若超块长则以摘要代,不足则以零补;内垫 0x36、外垫 0x5c 异或密钥,内哈希再入外哈希。字节皆以字节串载之(零字节可存)。纯豫言。
:」
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「整数操作」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「字节串」之书。
寻观「终端浏览器」之「散列摘要」之书。
「:文言:零字。汉语:成 n 个零字节之字节串。:」
「零字」乃化「整数」而「字节串」也。
「零字」者会「n」而
若「等零」于「n」则「空字节串」于「元」
否则「拼接字节串」于(「零字」于(「减」于「n」于「一」))于(「单字节串」于「零」)
也。
「:文言:重复字节。汉语:成 n 个某字节之字节串。:」
「重复字节」乃化「整数」而化「整数」而「字节串」也。
「重复字节」者会「b」而会「n」而
若「等零」于「n」则「空字节串」于「元」
否则「拼接字节串」于(「重复字节」于「b」于(「减」于「n」于「一」))于(「单字节串」于「b」)
也。
「:文言:补零到。汉语:以零字节补足字节串至目标长度。:」
「补零到」乃化「字节串」而化「整数」而「字节串」也。
「补零到」者会「串」而会「目标」而
虑「n」者(「字节串长度」于「串」)
而(若「大于」于「n」于「目标」则「串」否则「拼接字节串」于「串」于(「零字」于(「减」于「目标」于「n」)))
也。
「:文言:单字节异或。汉语:两单字节(零至二五五)异或。:」
「单字节异或」乃化「整数」而化「整数」而「整数」也。
「单字节异或」者会「甲」而会「乙」而
「字转整」于(「位异或」于(「整转字」于「甲」)于(「整转字」于「乙」))
也。
「:文言:异或字节串累。汉语:逐字节异或,自 i 起至 n。:」
「异或字节串累」乃化「字节串」而化「字节串」而化「整数」而化「整数」而化「字节串」而「字节串」也。
「异或字节串累」者会「甲」而会「乙」而会「i」而会「n」而会「积」而
若「等」于「i」于「n」则「积」
否则
虑「xv」者(「单字节异或」于(「字节串取字节」于「甲」于「i」)于(「字节串取字节」于「乙」于「i」))
而「异或字节串累」于「甲」于「乙」于(「加」于「i」于「一」)于「n」于(「拼接字节串」于「积」于(「单字节串」于「xv」))
也。
「:文言:异或字节串。汉语:两等长字节串逐字节异或。:」
「异或字节串」乃化「字节串」而化「字节串」而「字节串」也。
「异或字节串」者会「甲」而会「乙」而「异或字节串累」于「甲」于「乙」于「零」于(「字节串长度」于「甲」)于(「空字节串」于「元」)也。
「:文言:取十六值。汉语:十六符(零至九 a 至 f)转零至十五。:」
「取十六值」乃化「字符串」而「整数」也。
「取十六值」者会「c」而
鉴「c」而
有『0』则「零」
或有『1』则「一」
或有『2』则「二」
或有『3』则「三」
或有『4』则「四」
或有『5』则「五」
或有『6』则「六」
或有『7』则「七」
或有『8』则「八」
或有『9』则「九」
或有『a』则「一零」
或有『b』则「一一」
或有『c』则「一二」
或有『d』则「一三」
或有『e』则「一四」
或有『f』则「一五」
或有「其他」则「零」
也。
「:文言:十六转字累。汉语:十六串逐双符转字节,自 pos 至末尾。:」
「十六转字累」乃化「字符串」而化「整数」而化「字节串」而「字节串」也。
「十六转字累」者会「hex」而会「pos」而会「积」而
若「大于」于「pos」于(「减」于(「字节长度」于「hex」)于「二」)则「积」
否则
虑「hi」者(「取十六值」于(「获取子字符串」于「pos」于(「加」于「pos」于「一」)于「hex」))
而
虑「lo」者(「取十六值」于(「获取子字符串」于(「加」于「pos」于「一」)于(「加」于「pos」于「二」)于「hex」))
而
虑「b」者(「加」于(「乘」于「hi」于「一六」)于「lo」)
而「十六转字累」于「hex」于(「加」于「pos」于「二」)于(「拼接字节串」于「积」于(「单字节串」于「b」))
也。
「:文言:十六转字。汉语:小写十六进位串转字节串。:」
「十六转字」乃化「字符串」而「字节串」也。
「十六转字」者会「hex」而「十六转字累」于「hex」于「零」于(「空字节串」于「元」)也。
「:文言:消息认证。汉语:以密钥与数据成 HMAC-SHA256,小写十六进位。:」
「消息认证」乃化「字节串」而化「字节串」而「字符串」也。
「消息认证」者会「key」而会「msg」而
虑「L」者(「字节串长度」于「key」)
而
虑「K」者(若「大于」于「L」于「六四」
则「补零到」于(「十六转字」于(「散列摘要」于「key」))于「六四」
否则「补零到」于「key」于「六四」)
而
虑「ipadK」者(「异或字节串」于「K」于(「重复字节」于「五四」于「六四」))
而
虑「opadK」者(「异或字节串」于「K」于(「重复字节」于「九二」于「六四」))
而
虑「innerHex」者(「散列摘要」于(「拼接字节串」于「ipadK」于「msg」))
而
虑「inner」者(「十六转字」于「innerHex」)
而
「散列摘要」于(「拼接字节串」于「opadK」于「inner」)
也。