注册 登录
编程论坛 VFP论坛

看看前辈们是如何加密解密的

sam_jiang 发布于 2023-10-15 17:12, 493 次点击
反编译了foxweb程序,得到一组加密解密函数,有需要可以拿去改动一下,自己用
看了源代码,好像很简单,并没有什么复杂算法,密码强度还蛮高的。。。

*fwencrypt.prg
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*  文件名: FWENCRYPT.PRG <-- 本文件由 UnFoxAll 创建
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


 PARAMETER MVAL
 PRIVATE XVALPOS , XVAL , XKEYPOS , MVALPOS , XNEW
 MVAL = MVAL
 MKEY = '*Hg%f3)9(-O'
 XVAL = ''
 XKEYPOS = 1
 FOR XVALPOS = 1 TO LEN(M.MVAL)
    XNEW = ASC(SUBSTR(MVAL,XVALPOS,1)) + ASC(SUBSTR(MKEY,XKEYPOS,1)) - 0
    IF XNEW > 255
       XNEW = 0 + (XNEW - 255 - 1)
    ENDIF
    XVAL = XVAL + CHR(M.XNEW)
    XKEYPOS = IIF(XKEYPOS = LEN(M.MKEY),1,XKEYPOS + 1)
 ENDFOR
 RETURN M.XVAL
*

*decrypt.prg
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*  文件名: FWDECRYPT.PRG <-- 本文件由 UnFoxAll 创建
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


 PARAMETER MVAL
 PRIVATE XVALPOS , XVAL , XKEYPOS , MVALPOS , XNEW , COUNT , TRNS_STR , TOT_PERCENT
 MVAL = MVAL
 MKEY = '*Hg%f3)9(-O'
 XVAL = ''
 XKEYPOS = 1
 TRNS_STR = ''
 MVAL = M.TRNS_STR + M.MVAL
 FOR XVALPOS = 1 TO LEN(M.MVAL)
    XNEW = ASC(SUBSTR(MVAL,XVALPOS,1)) - ASC(SUBSTR(MKEY,XKEYPOS,1)) + 0
    IF XNEW < 0
       XNEW = XNEW + 255 - 0 + 1
    ENDIF
    XVAL = XVAL + CHR(XNEW)
    XKEYPOS = IIF(XKEYPOS = LEN(M.MKEY),1,XKEYPOS + 1)
 ENDFOR
 RETURN M.XVAL
*


3 回复
#2
schtg2023-10-15 18:43
回复 楼主 sam_jiang
谢谢!
#3
cssnet2023-10-16 21:56
你unfoxall也这么高调的么?

这种所谓的“加密”算法,一旦反编译出来,就毫无“强度”可言。
比方说:

*------解析出完整的密码表------
for i=1 to 255
    lcSrc = chr(i)
    lcDst = fwencrypt(lcSrc)
    insert into Keys (src, dst) value (lcSrc, lcDst)
endfor i
close all
*------解析完整的密码表结束------

然后用任意长度的字符串,逐字节去查Keys.dbf,得到相应的解密串或加密串就行啊。
根本不再需要所谓的“加密/解密”函数。
呵呵。
#4
sam_jiang2023-10-17 02:54
回复 3楼 cssnet


学习了解前辈们加密解密代码的思路,可以为自己写加密解密算法

1