caaooo 发表于 2022-10-12 11:10:53

[原创]超级纯lisp语言编的加密md5 sha1 sha256 base64...程序,放源码

本帖最后由 caaooo 于 2022-10-21 23:32 编辑

灵感来自明经论坛,思路是自己想的,主要是利用windows自带的内部exe程序实现加密算法


速度很快,纯lisp编制!!!
已修正bug,其实原bug是dos语言的问题……
标准cad测试没问题,国产cad需自测!
放源码

可以实现md2 md4 md5 sha1 sha256 sha384 sha512 base64及base64解密
程序很简单,windows下的cad可以直接拿来用,不需要额外的零零碎碎目前已知的问题是lisp语言自带的,需要输入str1时自行处理
其实就是在str1中含有特殊的两个字符时,\ 需要自行处理为 \\," 需要自行处理为 \"
其他均未自测出问题,包括之前的“空格”问题都已解决
因为已经放出源码,如果觉得不好可以自己改进
希望转载注明为“明经@caaooo”

命令格式:(mm str1 str2)
str1是加密的字符串,例如"123","abcd","hajfhfaj"……
str2是加密算法,例如"md2","md5","sha256","base64"……
特别的str2是base64解密,str2为"-base64"
win7系统的str2需要大写,且返回值有俩俩空格,需要自行处理
win10、win11的系统不受限制

如下例:
(mm "23456" "sha256")
====>"9b56ca8566a48b98a8c29a7fd307038ed555123439a937eb85d9c45166881e6e"
(mm "23456" "base64")
====>"MjM0NTY="
(mm "MjM0NTY=" "-base64")
====>"23456"
(mm "23456" "sha1")
====>"c24d0a1968e339c3786751ab16411c2c24ce8a2e"
(mm "23456" "md5")
====>"adcaec3805aa912c0d0b14a81bedb6ff"
(mm "23456" "sha512")
====>"3b90acfa12692d6730dab578f8224480f9096355612a232ac84dd0b941cd69316a828208e802c19ee037bdbe61b62f880db9bc7dd2d51976f79accf555e1f713"



baitang36 发表于 2022-10-12 14:14:23

本帖最后由 baitang36 于 2022-10-12 14:27 编辑

caaooo 发表于 2022-10-12 12:52
什么情况,具体说说
在中望2023下试验,确实用不了。

命令: _appload
D:\00\mm.fas1.lsp加载成功!
命令:
命令: (mm "23456" "sha1")
Error: 非法类型 - T
命令: (mm "23456" "md5")
Error: 非法类型 - T

是这句出错:(vlax-invoke C 'RUN (STRCAT "cmd.exe /c set /p=" A ">" D "<nul" ) 0 T )
把T都改成1就通用了。为尊重作者版权,就不发源码了。让楼主自己改吧。

在acad2008下正常,
命令: (mm "23456" "md5")
"adcaec3805aa912c0d0b14a81bedb6ff"

caaooo 发表于 2022-10-14 14:11:11

本帖最后由 caaooo 于 2022-10-14 14:26 编辑

434939575 发表于 2022-10-14 11:01
我的怎么是这样 (mm "23456" "sha512");>> "CertUtil: WsResetMetadata" cad2007 win7
我猜你用的是win7吧

唉,这也是这个内部命令的问题
不过可以解决
把str2改成大写的
例如md5===>MD5   sha512===>SHA512
你再试试看:)

最简单的办法,你把我的程序的第一行加一点料(strcase b) ,即
(setq b (strcase b) c (vlax-create-object "wscript.shell") d (vl-filename-mktemp) e (vl-filename-mktemp) i 2)
完全就通用win7 win10和win11了

天天向上ing 发表于 2023-5-1 13:18:15

命令: (mm "23456" "sha256") "9b 56 ca 85 66 a4 8b 98 a8 c2 9a 7f d3 07 03 8e d5
55 12 34 39 a9 37 eb 85 d9 c4 51 66 88 1e 6e"
命令: (mm "23456" "base64") "CertUtil: 错误 0xd0000225 (-805305819)"
命令: (mm "23456" "BASE64") "CertUtil: 错误 0xd0000225 (-805305819)"

这个怎么回事呢???

烟盒迷唇 发表于 2022-10-12 11:44:20

我来做小白鼠,看看效果如何

烟盒迷唇 发表于 2022-10-12 11:53:02

纯LISP的,为啥国产的用不了呢

逍遥无声 发表于 2022-10-12 11:58:00

我也试试!!!!!!!!!!!!!

caaooo 发表于 2022-10-12 12:52:36

烟盒迷唇 发表于 2022-10-12 11:53
纯LISP的,为啥国产的用不了呢

什么情况,具体说说

烟盒迷唇 发表于 2022-10-12 14:56:41

caaooo 发表于 2022-10-12 12:52
什么情况,具体说说

都是提示函数已取消,用不了

spp_wall 发表于 2022-10-12 15:03:44

支持!!!!!!!!!!!!!!

flowerson 发表于 2022-10-12 15:07:07

好程序,坐等源码!

行天下 发表于 2022-10-12 15:23:18

支持!!!!!!!!!!!!!!
页: [1] 2 3 4
查看完整版本: [原创]超级纯lisp语言编的加密md5 sha1 sha256 base64...程序,放源码