|
本帖最后由 CNWTEPRG 于 2018-5-5 17:26 编辑
易语言实现的简易区块链系统 搜索有逆序数的16位MD5 24小时不间断运算70天结果分析
平均每秒搜索4~5万条,平均几秒到几分钟就能搜到一条有效的,此源码累计已经计算了3000多亿条MD5。
运算器源码:https://www.fedcba9876543210.com/thread-1108-1-1.html
安全退出方法:当前目录新建一个名为exit的无扩展名文件等待退出,退出后会自动删除。
其中 ini.ini 文件保存有计算进度,任何情况下严禁删除否则只能从头再来。
逆序数最小的正在接近0123456789ABCDEF,最大的越来越接近FEDCBA9876543210。
生成的文件按每8字节分割成数组,最小的逆序数是15(极限0),结果如下:
- * 字节集:8{8,98,161,226,19,0,0,128} | “1305428976cdabef”
复制代码
已经计算出的最大的逆序数的MD5是105(极限120),结果如下:
- * 字节集:8{234,94,120,64,27,0,0,128} | “fabedc9657432810”
- * 字节集:8{90,226,204,17,55,0,0,128} | “eaf9dbc678453021”
复制代码
查看某个运算结果,源码如下(逆序数30的数据),下图所有算出的MD5,0~F只允许出现一次:
- .版本 2
- .支持库 spec
- .支持库 dp1
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 数据, 字节集, , "0"
- .局部变量 计数, 整数型
- ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
- 按长度分割字节集 (读入文件 (“data\30.bin”), 8, 数据)
- .计次循环首 (取数组成员数 (数据), 计数)
- 调试输出 (数据 [计数], 取文本中间 (取数据摘要 (数据 [计数]), 9, 16))
- .计次循环尾 ()
- .子程序 按长度分割字节集, , 公开
- .参数 字节集数据, 字节集
- .参数 分割长度, 整数型
- .参数 字节集数组, 字节集, 参考 数组
- .局部变量 分割数量, 整数型
- .局部变量 分割计数, 整数型
- .局部变量 长度计数, 整数型
- .局部变量 分割数据, 字节集
- .局部变量 总计数, 整数型
- 分割数量 = 取字节集长度 (字节集数据) ÷ 分割长度
- .如果真 (取字节集长度 (字节集数据) ÷ 分割长度 ≠ 到整数 (取字节集长度 (字节集数据) ÷ 分割长度))
- 分割数量 = 分割数量 + 1
- .如果真结束
- 重定义数组 (字节集数组, 假, 分割数量)
- .计次循环首 (分割数量, 分割计数)
- 分割数据 = { }
- .计次循环首 (分割长度, 长度计数)
- 总计数 = 总计数 + 1
- .如果真 (总计数 > 取字节集长度 (字节集数据))
- 跳出循环 ()
- .如果真结束
- 分割数据 = 分割数据 + 到字节集 (字节集数据 [总计数])
- .计次循环尾 ()
- 字节集数组 [分割计数] = 分割数据
- .计次循环尾 ()
复制代码
输出结果:
- * 字节集:8{10,124,154,211,27,0,0,128} | “0615234fd9a7e8cb”
- * 字节集:8{201,204,1,2,28,0,0,128} | “03912a64b8fc5e7d”
- * 字节集:8{29,195,131,21,28,0,0,128} | “4203b56cd18a79fe”
- * 字节集:8{110,17,251,115,28,0,0,128} | “70824c1369bae5df”
- * 字节集:8{185,220,208,133,28,0,0,128} | “2d704581369caebf”
- * 字节集:8{205,26,61,150,28,0,0,128} | “01459e37a28bfc6d”
- * 字节集:8{227,177,152,61,29,0,0,128} | “621053d89ac4eb7f”
- * 字节集:8{82,74,192,112,29,0,0,128} | “24517a0b6f3c89de”
- * 字节集:8{87,60,113,230,29,0,0,128} | “12435c98b70af6de”
- * 字节集:8{96,39,150,109,30,0,0,128} | “01528c39aed647bf”
- * 字节集:8{235,137,255,132,30,0,0,128} | “1429065b78fda3ec”
- * 字节集:8{228,33,163,60,31,0,0,128} | “271034cb85f9a6ed”
- * 字节集:8{26,108,201,92,31,0,0,128} | “1b20843da6579cfe”
- * 字节集:8{74,95,168,144,31,0,0,128} | “12843e079b56dafc”
- * 字节集:8{213,172,235,185,31,0,0,128} | “e0461237859dbfca”
- * 字节集:8{4,154,103,233,31,0,0,128} | “523480697cead1fb”
- * 字节集:8{192,100,67,63,32,0,0,128} | “459210687a3fbedc”
- * 字节集:8{52,224,46,65,32,0,0,128} | “0315cf28647b9ead”
- * 字节集:8{206,224,81,100,32,0,0,128} | “3509268a4c1e7dbf”
- * 字节集:8{201,127,192,120,32,0,0,128} | “1b75342068e9acdf”
- * 字节集:8{18,106,169,135,32,0,0,128} | “83471062d59cbaef”
- * 字节集:8{85,7,143,182,32,0,0,128} | “0417b62c53d98fea”
- * 字节集:8{115,97,248,206,32,0,0,128} | “0395186f427cadbe”
- * 字节集:8{113,100,226,19,33,0,0,128} | “703591486badef2c”
- * 字节集:8{12,111,254,58,33,0,0,128} | “e406153278ad9cbf”
- * 字节集:8{36,124,155,126,33,0,0,128} | “b2083164c59ae7df”
- * 字节集:8{65,73,207,144,33,0,0,128} | “0154689ade32bf7c”
- * 字节集:8{131,145,73,184,33,0,0,128} | “8230476a5b9cfd1e”
- * 字节集:8{169,116,195,10,34,0,0,128} | “10d5832647aefb9c”
- * 字节集:8{158,22,193,75,34,0,0,128} | “70143c26ba95def8”
- * 字节集:8{67,124,30,155,34,0,0,128} | “320571d8b96e4caf”
- * 字节集:8{227,106,63,183,34,0,0,128} | “53046f79128aebcd”
- * 字节集:8{165,40,15,186,34,0,0,128} | “1032958afb4ec67d”
- * 字节集:8{171,75,135,235,34,0,0,128} | “123459bf07ce68ad”
- * 字节集:8{23,222,14,47,35,0,0,128} | “15062e3b48c9da7f”
- * 字节集:8{233,175,195,76,35,0,0,128} | “048735169dbae2fc”
- * 字节集:8{16,127,224,96,35,0,0,128} | “026759e418b3cadf”
- * 字节集:8{237,77,109,111,35,0,0,128} | “a2036915784cfebd”
- * 字节集:8{113,163,115,146,35,0,0,128} | “01275ab96f34d8ce”
- * 字节集:8{248,179,247,70,36,0,0,128} | “32054eb189a67cfd”
- * 字节集:8{201,140,28,71,36,0,0,128} | “057369214afbde8c”
- * 字节集:8{160,152,237,163,36,0,0,128} | “930412e8756bcafd”
- * 字节集:8{235,143,225,198,36,0,0,128} | “503174ad2f96b8ce”
- * 字节集:8{192,9,119,225,36,0,0,128} | “1637a580b294decf”
- * 字节集:8{105,38,163,21,37,0,0,128} | “02147b8e59acd36f”
- * 字节集:8{180,7,49,36,37,0,0,128} | “34680a5172bdecf9”
- * 字节集:8{244,232,54,41,37,0,0,128} | “5061843cb2a97efd”
- * 字节集:8{26,253,138,125,37,0,0,128} | “15309482f76dbcea”
- * 字节集:8{234,246,89,152,37,0,0,128} | “41507869c2bfa3ed”
- * 字节集:8{244,118,239,205,37,0,0,128} | “12d03c547b89a6ef”
- * 字节集:8{173,4,71,7,38,0,0,128} | “8235910b467deafc”
- * 字节集:8{106,20,118,60,38,0,0,128} | “52c340716f98abde”
- * 字节集:8{43,176,186,90,38,0,0,128} | “710398d524a6befc”
- * 字节集:8{79,192,53,184,38,0,0,128} | “124759c368df0abe”
- * 字节集:8{29,117,111,217,38,0,0,128} | “0362c4ba15789fed”
- * 字节集:8{249,224,39,33,39,0,0,128} | “0482179d36bfa5ce”
- * 字节集:8{61,136,203,64,39,0,0,128} | “09321ab7648d5cfe”
- * 字节集:8{248,51,132,67,39,0,0,128} | “60157389cba4df2e”
- * 字节集:8{201,170,193,135,39,0,0,128} | “534027db6819cafe”
- * 字节集:8{243,31,20,136,39,0,0,128} | “32479016cd85fbae”
- * 字节集:8{222,247,160,166,39,0,0,128} | “153642a07fbdc89e”
- * 字节集:8{149,222,181,179,39,0,0,128} | “905132ea6487bdfc”
- * 字节集:8{8,205,166,233,39,0,0,128} | “31270a4e5c6b9f8d”
- * 字节集:8{205,136,24,9,40,0,0,128} | “154639a72bd08ecf”
- * 字节集:8{63,120,152,89,40,0,0,128} | “1e3054289a7c6fbd”
- * 字节集:8{190,132,120,98,40,0,0,128} | “136740f5a829cdeb”
- * 字节集:8{142,255,117,112,40,0,0,128} | “015f47b62398aced”
- * 字节集:8{150,244,107,121,40,0,0,128} | “1302a6974f5e8dcb”
- * 字节集:8{36,185,150,192,40,0,0,128} | “475109b6823caedf”
- * 字节集:8{30,101,156,2,41,0,0,128} | “62094c53178bafed”
- * 字节集:8{160,37,251,95,41,0,0,128} | “280619ab347cdef5”
- * 字节集:8{168,80,228,113,41,0,0,128} | “4320cb61579ad8fe”
- * 字节集:8{150,75,1,114,41,0,0,128} | “06345b7a1c29df8e”
- * 字节集:8{113,154,39,131,41,0,0,128} | “36015e92748dbcfa”
- * 字节集:8{137,204,67,207,41,0,0,128} | “073419568fbadce2”
- * 字节集:8{139,135,110,212,41,0,0,128} | “74265108ac3be9df”
- * 字节集:8{158,255,109,253,41,0,0,128} | “5401b673d829ecaf”
- * 字节集:8{220,131,123,49,42,0,0,128} | “4102735edca68b9f”
- * 字节集:8{107,13,243,72,42,0,0,128} | “26319780a54cfdeb”
- * 字节集:8{62,85,56,131,42,0,0,128} | “30461a5b9c7e8d2f”
- * 字节集:8{26,15,11,132,42,0,0,128} | “5613408729edcfba”
- * 字节集:8{121,135,203,155,42,0,0,128} | “142068d395bfeac7”
- * 字节集:8{29,218,11,198,42,0,0,128} | “134982076d5faceb”
- * 字节集:8{108,121,206,230,42,0,0,128} | “258413a970c6debf”
- * 字节集:8{255,108,20,92,44,0,0,128} | “431082fa5796cebd”
- * 字节集:8{46,34,186,39,45,0,0,128} | “c31025867f49aebd”
- * 字节集:8{160,18,141,89,45,0,0,128} | “6172453ba90e8cdf”
- * 字节集:8{172,6,206,186,45,0,0,128} | “19524607afc38bde”
- * 字节集:8{97,134,82,0,46,0,0,128} | “0415e2a36c8f79db”
- * 字节集:8{56,122,255,53,46,0,0,128} | “630517428cfaedb9”
- * 字节集:8{23,69,157,132,46,0,0,128} | “2b10874936d5acef”
- * 字节集:8{147,58,103,175,46,0,0,128} | “14c2058369faeb7d”
- * 字节集:8{63,225,127,33,47,0,0,128} | “31085a269de4cb7f”
- * 字节集:8{250,2,125,165,47,0,0,128} | “0249a561f378ebdc”
- * 字节集:8{181,201,183,53,48,0,0,128} | “034872a16dce95bf”
- * 字节集:8{243,242,244,151,48,0,0,128} | “61a02537b4dcf98e”
- * 字节集:8{13,63,159,171,48,0,0,128} | “10d625b374ae89cf”
- * 字节集:8{53,31,68,196,48,0,0,128} | “410567a29cbfe83d”
- * 字节集:8{102,9,42,228,48,0,0,128} | “236940b17cad58fe”
- * 字节集:8{224,224,27,18,49,0,0,128} | “2950148ab7d63cef”
- * 字节集:8{219,228,117,233,49,0,0,128} | “031745d6c8b9fa2e”
- * 字节集:8{219,221,162,236,49,0,0,128} | “061378952dfba4ec”
- * 字节集:8{149,36,87,243,49,0,0,128} | “6314025cb7afe89d”
- * 字节集:8{189,208,69,88,50,0,0,128} | “394156270eab8fcd”
- * 字节集:8{43,156,71,174,50,0,0,128} | “0412a6d5bc389e7f”
- * 字节集:8{188,125,109,233,50,0,0,128} | “10a426db7358cef9”
- * 字节集:8{69,140,177,42,51,0,0,128} | “7930a214685bcfed”
- * 字节集:8{213,154,8,179,51,0,0,128} | “0135e69482da7fcb”
- * 字节集:8{225,121,182,211,51,0,0,128} | “3426587e019dbafc”
- * 字节集:8{89,142,147,229,51,0,0,128} | “064129d5387febca”
- * 字节集:8{47,24,201,252,51,0,0,128} | “914276058bc3afed”
- * 字节集:8{76,44,26,46,52,0,0,128} | “0165ca439b278def”
- * 字节集:8{235,110,1,55,52,0,0,128} | “025493b6e7c81afd”
- * 字节集:8{167,222,48,133,52,0,0,128} | “70163952ae8bdc4f”
- * 字节集:8{158,119,116,143,52,0,0,128} | “02481b7635efad9c”
- * 字节集:8{23,190,155,158,52,0,0,128} | “403a25967b8ecf1d”
- * 字节集:8{70,82,166,252,52,0,0,128} | “0c2134957bed6fa8”
- * 字节集:8{171,142,25,60,53,0,0,128} | “713289b5046afced”
- * 字节集:8{177,189,243,63,53,0,0,128} | “23814956b0fc7dea”
- * 字节集:8{29,127,13,74,53,0,0,128} | “5068219b43aed7fc”
- * 字节集:8{239,31,11,204,53,0,0,128} | “1402ca3b68795efd”
- * 字节集:8{93,202,249,246,53,0,0,128} | “12306b7d8c5a9e4f”
- * 字节集:8{255,44,75,255,53,0,0,128} | “304671982dcfba5e”
- * 字节集:8{215,164,60,95,54,0,0,128} | “10983c6427a5ebdf”
- * 字节集:8{65,49,18,191,54,0,0,128} | “016927d3a4c5bfe8”
- * 字节集:8{149,110,13,20,55,0,0,128} | “051346b8f72deac9”
- * 字节集:8{249,15,183,175,55,0,0,128} | “673520149bdace8f”
- * 字节集:8{237,26,186,226,55,0,0,128} | “023c15698da7fe4b”
- * 字节集:8{247,195,63,247,55,0,0,128} | “16203479efb8da5c”
- * 字节集:8{235,74,65,31,56,0,0,128} | “0247958c31d6bfea”
- * 字节集:8{167,12,208,51,56,0,0,128} | “2603184cfa59e7bd”
- * 字节集:8{226,178,115,85,56,0,0,128} | “31bc4057628a9dfe”
- * 字节集:8{193,228,108,78,57,0,0,128} | “012c48e3576bfad9”
复制代码
二次校验器源码,若有计算错误会调试输出出来,逆序数有误会暂停:
存在3处错误,可能是由于意外断电或蓝屏死机、进程异常终止造成的:
- .版本 2
- .支持库 dp1
- .支持库 spec
- .程序集 窗口程序集_启动窗口
- .子程序 __启动窗口_创建完毕
- .局部变量 数组, 字节集, , "8"
- .局部变量 计数, 整数型
- .局部变量 MD5, 文本型
- .局部变量 逆序数, 整数型
- .局部变量 逆序数计数, 整数型
- .局部变量 路径, 文本型
- .变量循环首 (0, 120, 1, 逆序数计数)
- 路径 = “data\” + 到文本 (逆序数计数) + “.bin”
- .如果真 (文件是否存在 (路径))
- 按长度分割字节集 (读入文件 (路径), 8, 数组)
- .计次循环首 (取数组成员数 (数组), 计数)
- MD5 = 取文本中间 (取数据摘要 (数组 [计数]), 9, 16)
- .如果 (是否有效 (MD5))
- 逆序数 = 计算逆序数 (MD5)
- .否则
- 调试输出 (“错误”, 数组 [计数], MD5, 逆序数, 计数)
- .如果结束
- .如果真 (逆序数 ≠ 逆序数计数)
- 暂停 ()
- .如果真结束
- .计次循环尾 ()
- .如果真结束
- .变量循环尾 ()
- 调试输出 (“校验完成!”)
- 结束 ()
- .子程序 按长度分割字节集, , 公开
- .参数 字节集数据, 字节集
- .参数 分割长度, 整数型
- .参数 字节集数组, 字节集, 参考 数组
- .局部变量 分割数量, 整数型
- .局部变量 分割计数, 整数型
- .局部变量 长度计数, 整数型
- .局部变量 分割数据, 字节集
- .局部变量 总计数, 整数型
- 分割数量 = 取字节集长度 (字节集数据) ÷ 分割长度
- .如果真 (取字节集长度 (字节集数据) ÷ 分割长度 ≠ 到整数 (取字节集长度 (字节集数据) ÷ 分割长度))
- 分割数量 = 分割数量 + 1
- .如果真结束
- 重定义数组 (字节集数组, 假, 分割数量)
- .计次循环首 (分割数量, 分割计数)
- 分割数据 = { }
- .计次循环首 (分割长度, 长度计数)
- 总计数 = 总计数 + 1
- .如果真 (总计数 > 取字节集长度 (字节集数据))
- 跳出循环 ()
- .如果真结束
- 分割数据 = 分割数据 + 到字节集 (字节集数据 [总计数])
- .计次循环尾 ()
- 字节集数组 [分割计数] = 分割数据
- .计次循环尾 ()
- .子程序 是否有效, 逻辑型
- .参数 文本, 文本型
- .局部变量 字节集, 字节集
- .局部变量 计数, 整数型
- .局部变量 字节数组, 字节型, , "16"
- 字节集 = 到字节集 (文本)
- .计次循环首 (16, 计数)
- 字节数组 [计数] = 字节集 [计数]
- .计次循环尾 ()
- 数组排序 (字节数组, 真)
- .计次循环首 (16, 计数)
- 字节集 [计数] = 字节数组 [计数]
- .计次循环尾 ()
- 返回 (到文本 (字节集) = “0123456789abcdef”)
- .子程序 计算逆序数, 整数型
- .参数 MD5文本, 文本型
- .局部变量 计数, 整数型
- .局部变量 当前文本, 文本型
- .局部变量 数组, 整数型, , "0"
- .计次循环首 (16, 计数)
- 当前文本 = 到大写 (取文本中间 (MD5文本, 计数, 1))
- .判断开始 (当前文本 = “A”)
- 加入成员 (数组, 10)
- .判断 (当前文本 = “B”)
- 加入成员 (数组, 11)
- .判断 (当前文本 = “C”)
- 加入成员 (数组, 12)
- .判断 (当前文本 = “D”)
- 加入成员 (数组, 13)
- .判断 (当前文本 = “E”)
- 加入成员 (数组, 14)
- .判断 (当前文本 = “F”)
- 加入成员 (数组, 15)
- .判断 (到整数 (当前文本) ≥ 0 且 到整数 (当前文本) ≤ 9)
- 加入成员 (数组, 到整数 (当前文本))
- .默认
- .判断结束
- .计次循环尾 ()
- 返回 (求逆序数 (数组))
- .子程序 求逆序数, 整数型
- .参数 数据, 整数型, 数组
- .局部变量 计数, 整数型
- .局部变量 计数2, 整数型
- .局部变量 返回值, 整数型
- .局部变量 当前数, 整数型
- .计次循环首 (16, 计数)
- 当前数 = 数据 [计数]
- .变量循环首 (计数 + 1, 16, 1, 计数2)
- .如果真 (数据 [计数2] < 当前数)
- 返回值 = 返回值 + 1
- .如果真结束
- .变量循环尾 ()
- .计次循环尾 ()
- 返回 (返回值)
复制代码
附送一套运算结果附件(24小时不间断运行70多天产生的):
data.zip
(1.29 MB, 下载次数: 5, 售价: 1 枚从币)
|
评分
-
1
查看全部评分
-
|