烟盒迷唇 发表于 2022-8-2 10:42:25

字符串混淆优化

这个函数代码在中望CAD里面运行较慢,需要10秒时间,谁能帮忙优化优化。
(defun appcodeConfused(str / code lennum n strlst)
                  (setq strlst (vl-string->list str) lennum (length strlst) n 0 code "")
                  (foreach x strlst
                      (setq code
                        (strcat code
                        (cond
                            ((< n 1 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 2 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 3 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 4 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 5 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 6 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 7 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 8 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 9 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 10 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 11 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 12 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 12 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 14 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 15 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            ((< n 16 lennum) (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                            (T (strcat (itoa (nth n strlst)) (itoa (ascii "F"))))
                        )
                        )
                      )
                      (setq n (1+ n))
                  )
                  code
                  )

lijiao 发表于 2022-8-2 17:03:50

(defun appcodeConfused (str / x)
(apply 'strcat
       (mapcar '(lambda (x)
                  (strcat (itoa x) "70")
                  )
               (vl-string->list str)
       )
)
)

烟盒迷唇 发表于 2022-8-4 19:34:43

lijiao 发表于 2022-8-2 17:03


里面的“F”只是举例,实际上每个字都是不一样的

baitang36 发表于 2022-8-5 09:51:53

本帖最后由 baitang36 于 2022-8-5 09:53 编辑

试一下这个,看看速度能提高多少?没有改变你的算法,只是把F替换成当前时间的秒数
(defun hxcode(str / code strl n miao)
(setq miao (menucmd "M=$(edtime,$(getvar,date),SS)"))
(setq strl (strlen str))
(setq code "")
(setq n 1)
(repeat strl
(setq code (strcat code (itoa (ascii (substr str n 1))) miao))
(setq n (+ n 1))
)
code
)

烟盒迷唇 发表于 2022-8-5 10:32:10

baitang36 发表于 2022-8-5 09:51
试一下这个,看看速度能提高多少?没有改变你的算法,只是把F替换成当前时间的秒数
(defun hxcode(str / c ...

和上面那位仁兄的结果一样,都是还有8秒的延迟,估计还有别的函数影响。你这个随机的每次生成都不一样,每次都得算一次才能用,不太合适呢。

烟盒迷唇 发表于 2022-8-5 10:34:18

baitang36 发表于 2022-8-5 09:51
试一下这个,看看速度能提高多少?没有改变你的算法,只是把F替换成当前时间的秒数
(defun hxcode(str / c ...

能改一下LEE MAC的那个MD5提速嘛

baitang36 发表于 2022-8-5 10:48:41

烟盒迷唇 发表于 2022-8-5 10:34
能改一下LEE MAC的那个MD5提速嘛

MD5最好用个dll来实现,lsp的太慢

烟盒迷唇 发表于 2022-8-5 10:54:44

baitang36 发表于 2022-8-5 10:48
MD5最好用个dll来实现,lsp的太慢

.NET的不会呀

baitang36 发表于 2022-8-5 12:38:02

这种混淆不可能快,建议你用vl-string-translate简单变换一下

fangmin723 发表于 2022-8-5 16:27:15

这个混淆器影响不了太大,主要是MD5的影响!
页: [1] 2
查看完整版本: 字符串混淆优化