豫豫言文档API ATLAS
入口包说明.html
97 模块899 名称
← 全部模块

模块 / 51

散列二五六。豫

散列二五六。豫

33公开名称

字模

公开
「整数」

文言:安全散列二五六,依 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 字节),即整串作为一段交给「散列二五六段」。