明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1117|回复: 15

[经验] [原创]纯lisp实现最高效base64编码解码

  [复制链接]
发表于 2024-6-18 14:48:55 | 显示全部楼层 |阅读模式
本帖最后由 baitang36 于 2024-6-18 20:44 编辑

纯算法实现base64编码解码 - AutoLISP/Visual LISP 编程技术 - AutoCAD论坛 - 明经CAD社区 - Powered by Discuz! (mjtd.com)

纯lisp实现更高效的base64编码解码 - AutoLISP/Visual LISP 编程技术 - AutoCAD论坛 - 明经CAD社区 - Powered by Discuz! (mjtd.com)
看了以上两个帖子,觉得已经非常不错了。
但觉得还有点慢,怎么办?上汇编,只有汇编语言写的东西才可以用最。最快的代码一定是汇编,别的语言最终执行的机器码也相当于汇编。
汇编语言的试验代码很简单

.data
    pbBinary db  256 dup (0)    ; buffer for output
    newstr1 db  256 dup (0)   
    pszString db "1234567890123456789012",0
              db 100 dup(0)
     cchString    dd 22
     dwFlags      dd 1
     pcbBinary    dd 36
     pdwSkip      dd 0
     pdwFlags     dd 0
     pcbBinary1   dd 22
.code
start:
   invoke CryptStringToBinaryA,addr pszString, 22,1, 0,addr pcbBinary,0,0
   invoke CryptStringToBinaryA,addr pszString, 22,1, addr pbBinary,addr pcbBinary,0,0  ;解密成功,输出二进制字符串
   invoke CryptBinaryToStringA,  addr pbBinary,16,  1,addr newstr1, addr pcbBinary1   ;加密                     
   invoke ExitProcess,eax
end start


试验成功后再把它改成autolisp
程序中定义了三个函数:
syz-base64-encode-a (str ) 加密字符串
syz-base64-decode-a (str ) 解密字符串
syz-base64-decode-aL (str) 解密字符串,输出一个表。为了方便使用二进制数据。
由于使用了保留函数调用CryptStringToBinaryA,仅支持acad,32位64位都可以,高版本lispsys=0才能用。
只能使用ansi编码,不支持Unicode
用法:
命令: (syz-base64-encode-a "12345上山打老虎")
"MTIzNDXJz8m9tPLAz7ui"
命令: (syz-base64-decode-a "MTIzNDXJz8m9tPLAz7ui")
"12345上山打老虎"
命令: (syz-base64-decode-al "MTIzNDXJz8m9tPLAz7ui")
(49 50 51 52 53 201 207 201 189 180 242 192 207 187 162)





本帖子中包含更多资源

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

x

评分

参与人数 6明经币 +6 金钱 +40 收起 理由
highflybird + 1 + 30
Bao_lai + 1 很给力!
tryhi + 1 + 10
p-3-ianlcc + 1 很给力!
自贡黄明儒 + 1
ssyfeng + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2024-6-18 20:39:59 | 显示全部楼层
kozmosovia 发表于 2024-6-18 18:45
好像在lispsys=1的情况下,不能用。

不支持utf-8字符串,只支持ansi编码,必须lispsys=0
 楼主| 发表于 2024-6-18 15:41:30 | 显示全部楼层
dwx爱好者可以参照汇编码实现同样功能
发表于 2024-6-18 18:45:30 | 显示全部楼层
本帖最后由 kozmosovia 于 2024-6-18 19:00 编辑

好像在lispsys=1的情况下,不能用。

本帖子中包含更多资源

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

x
发表于 2024-6-18 14:57:31 | 显示全部楼层
这个也是用隐藏函数的吗?

点评

是的,隐藏函数调用windows API  发表于 2024-6-18 15:40
发表于 2024-6-18 15:22:07 | 显示全部楼层
这也太强了。
发表于 2024-6-18 15:56:36 | 显示全部楼层
先点赞后观看
发表于 2024-6-18 16:39:01 | 显示全部楼层
太棒了,点赞~
下载来存着!!
发表于 2024-6-18 16:52:39 | 显示全部楼层
先顶后看,火速下载
发表于 2024-6-18 17:36:35 | 显示全部楼层

太棒了,点赞~
发表于 2024-6-18 17:57:45 | 显示全部楼层
速度确实非常快,比系统的还快
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 16:37 , Processed in 0.205224 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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