明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4383|回复: 40

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

  [复制链接]
发表于 2022-10-12 11:10 | 显示全部楼层 |阅读模式
本帖最后由 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"



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 3明经币 +3 金钱 +10 收起 理由
自贡黄明儒 + 1 赞一个!
tigcat + 1 + 10 很给力!
baitang36 + 1 很给力!

查看全部评分

发表于 2022-10-12 14:14 | 显示全部楼层
本帖最后由 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"

 楼主| 发表于 2022-10-14 14: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了
发表于 2023-5-1 13:18 | 显示全部楼层
命令: (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 | 显示全部楼层
我来做小白鼠,看看效果如何
发表于 2022-10-12 11:53 | 显示全部楼层
纯LISP的,为啥国产的用不了呢
 楼主| 发表于 2022-10-12 12:52 | 显示全部楼层
烟盒迷唇 发表于 2022-10-12 11:53
纯LISP的,为啥国产的用不了呢

什么情况,具体说说
发表于 2022-10-12 14:56 | 显示全部楼层
caaooo 发表于 2022-10-12 12:52
什么情况,具体说说

都是提示函数已取消,用不了
发表于 2022-10-12 15:07 | 显示全部楼层
好程序,坐等源码!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 02:09 , Processed in 0.397582 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表