字模
公开「整数」文言:安全散列二五六,依 FIPS 180-4。高级之模无位运之原语,故以两张字节之表(与、异或)及乘除成三十二位之与、异或、循环右移与右移。汉语:SHA-256(FIPS 180-4)的纯豫言实现,供苹果平台代码签名等使用。高级模式没有位运算原语,这里用两张 256×256 的字节查表(按位与、按位异或,各分两级存放)加整数乘除,实现 32 位的与、异或、非、循环右移与右移。
包说明.html模块 / 51
散列二五六。豫
「整数」文言:安全散列二五六,依 FIPS 180-4。高级之模无位运之原语,故以两张字节之表(与、异或)及乘除成三十二位之与、异或、循环右移与右移。汉语:SHA-256(FIPS 180-4)的纯豫言实现,供苹果平台代码签名等使用。高级模式没有位运算原语,这里用两张 256×256 的字节查表(按位与、按位异或,各分两级存放)加整数乘除,实现 32 位的与、异或、非、循环右移与右移。
「整数」暂无说明。
化「混合数组引用类」而化「整数」而化「整数」而「有」文言:写整数于数组之格。汉语:把整数写入混合数组的指定槽位。
化(「列」于「整数」)而「混合数组引用类」文言:以整数之列造数组,依序写之。汉语:把整数列表逐项写入新的混合数组(下标从零开始)。
化「整数」而化「整数」而化「整数」而化「爻」而「整数」文言:逐位合二字节:与则相乘,异或则相加取二之余。汉语:逐位合并两个字节:按位与时两位相乘,按位异或时两位相加取模 2。权从 1 到 128。
化「混合数组引用类」而化「整数」而化「混合数组引用类」而「有」文言:以表置于外表之格。汉语:把内表写入外表的指定槽位。
化「爻」而「混合数组引用类」文言:造二级之表:外表二百五十六格,第甲格为一内表,内表第乙格存甲乙之合。分为小表者,免一次求大块之存。汉语:生成 256×256 的字节运算表,分两级存放:外表第 甲 格是一张 256 格的内表,内表第 乙 格存两字节的运算结果。拆成小表是为了避免一次分配 65536 格的大对象(原生运行时的初始堆放不下)。
「混合数组引用类」暂无说明。
「混合数组引用类」暂无说明。
化「混合数组引用类」而化「整数」而化「整数」而「整数」暂无说明。
化「混合数组引用类」而化「整数」而化「整数」而「整数」文言:三十二位之合,分四字节查表而后并之。汉语:32 位按位运算:拆成四个字节分别查表,再按权合并。
化「整数」而化「整数」而「整数」暂无说明。
化「整数」而化「整数」而「整数」暂无说明。
化「整数」而「整数」暂无说明。
化「整数」而化「整数」而「整数」暂无说明。
化「整数」而「整数」暂无说明。
化「整数」而化「整数」而「整数」暂无说明。
化「整数」而化「整数」而「整数」暂无说明。
化「整数」而「整数」暂无说明。
化「整数」而「整数」暂无说明。
化「整数」而「整数」暂无说明。
化「整数」而「整数」暂无说明。
化「整数」而化「整数」而化「整数」而「整数」暂无说明。
化「整数」而化「整数」而化「整数」而「整数」暂无说明。
「混合数组引用类」文言:轮常数六十四,取前六十四素数立方根之小数部。汉语:64 个轮常数(前 64 个素数立方根小数部分的前 32 位)。
(「列」于「整数」)文言:初值八,取前八素数平方根之小数部。汉语:8 个初始散列值(前 8 个素数平方根小数部分的前 32 位)。
化「整数」而化「整数」而「字节串」暂无说明。
化「字节串」而化「整数」而「整数」暂无说明。
化「混合数组引用类」而化「整数」而「整数」暂无说明。
化「混合数组引用类」而化「混合数组引用类」而化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而「有」文言:六十四轮,毕则加于状态。汉语:64 轮压缩(尾递归);第 64 轮后把工作变量加回状态数组。
化「混合数组引用类」而化「字节串」而化「整数」而「有」文言:压一块:立消息表六十四字,而后行六十四轮。汉语:压缩一个 64 字节块:先展开 64 个字的消息表,再以当前状态为工作变量执行 64 轮。
化「字节串」而化「整数」而化「整数」而「字节串」文言:散列一段:自「起」取「长」字节,不截取其串;满块者径压于原串,余者与补位合为一二块而压之,以大端出其八字。截取之术每呼宿主而全抄其串,逐页用之则成平方之费,故避之。汉语:计算字节串中从「起」开始、长为「长」的一段的 SHA-256 摘要(32 字节),不截取子串:完整的 64 字节块直接在原串上按偏移压缩;剩下不足一块的字节连同补位(0x80、零字节与 64 位大端位长)拼成一至两块再压缩;最后按大端输出 8 个状态字。「截取字节串」是宿主调用,要复制整个原串,逐页截取大文件会变成平方级开销,所以这里不用它。
化「字节串」而「字节串」文言:散列二五六:全串为一段。汉语:计算整个字节串的 SHA-256 摘要(32 字节),即整串作为一段交给「散列二五六段」。