标题:请帮忙解决这段加密代码,如何写出解密代码
只看楼主
shenkj001
Rank: 3Rank: 3
来 自:河南安阳
等 级:论坛游侠
威 望:9
帖 子:340
专家分:147
注 册:2005-5-23
结帖率:89.29%
已结贴  问题点数:20 回复次数:4 
请帮忙解决这段加密代码,如何写出解密代码
func encrypt()
para ss1
IF len(ss1)>0
handle1=fopen(ss1,2)
if handle1< 0
messagebox('没有找到指定文件...',0+64,'系统提示')
return
ENDIF
ENDIF
i=1
nn1=len(ss1)
ss2=subs(ss1,1,nn1-4)+'.dat' &&构造加密后文件扩展名为.dat
handle2=fcreate(ss2)
do while i<nn1
=fseek(handle1,i)
retasc=fread(handle1,i)
if asc(retasc)=13
exit
endif
i=i+1
enddo
=fseek(handle1,0)
retstr=fread(handle1,i)
=fwrite(handle2,retstr)
j=0
DO while .not.feof(handle1)
=fseek(handle1,i+j)
if asc(retasc)>253
ch=chr(255-asc(retasc))
else
ch=chr(asc(retasc)+2)
endif
=fwrite(handle2,ch)
j=j+1
enddo
messagebox('加密成功...',0+64,'系统提示')
=fclose(handle1)
=fclose(handle2)
dele file &ss1
return ss2
ENDFUNC
&&输出加密文件名,文件扩展名改为.DAT
 

[此贴子已经被作者于2018-5-20 21:15编辑过]

搜索更多相关主题的帖子: 加密 代码 解密 IF asc 
2018-05-20 21:12
shenkj001
Rank: 3Rank: 3
来 自:河南安阳
等 级:论坛游侠
威 望:9
帖 子:340
专家分:147
注 册:2005-5-23
得分:0 
我用以下代码不知道“if asc(retasc)>255”这一句的255该取多少?
func encrypts()
para ss1
IF len(ss1)>0
handle1=fopen(ss1,2)
if handle1< 0
messagebox('没有找到指定文件...',0+64,'系统提示')
return
ENDIF
ENDIF
i=1
nn1=len(ss1)
ss2=subs(ss1,1,nn1-4)+'.dbf' &&构造解密后文件扩展名为.dbf
handle2=fcreate(ss2)
do while i<nn1
=fseek(handle1,i)
retasc=fread(handle1,i)
if asc(retasc)=15
exit
endif
i=i+1
enddo
=fseek(handle1,0)
retstr=fread(handle1,i)
=fwrite(handle2,retstr)
j=0
DO while .not.feof(handle1)
=fseek(handle1,i+j)
if asc(retasc)>255 &&这里的255该取多少?请帮忙...
ch=chr(255-asc(retasc))
else
ch=chr(asc(retasc)-2)
endif
=fwrite(handle2,ch)
j=j+1
enddo
messagebox('解密成功...',0+64,'系统提示')
=fclose(handle1)
=fclose(handle2)
dele file &ss1
return ss2
ENDFUNC
&&输出加密文件名,文件扩展名改为.DBF

[此贴子已经被作者于2018-5-20 23:52编辑过]


shenkj001@
2018-05-20 22:40
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:14 
说说加密原理,encrypt()中下面这段代码是做什么用的?
do while i<nn1
=fseek(handle1,i)
retasc=fread(handle1,i)
if asc(retasc)=13
exit
endif
i=i+1
enddo
2018-05-21 10:39
shenkj001
Rank: 3Rank: 3
来 自:河南安阳
等 级:论坛游侠
威 望:9
帖 子:340
专家分:147
注 册:2005-5-23
得分:0 
do while i<nn1
 =fseek(handle1,i) &&从文件handle1移动指针i后,FSEEK( ) 函数返回从文件开始到文件指针i位置的字节数。
 retasc=fread(handle1,i) &&从用低级文件函数打开的文件handle1返回指定数目i的字节
 if asc(retasc)=13  &&返回字符表达式retasc中最左边字符的 ANSI 值。
 exit
 endif
 i=i+1
 enddo
再次感谢吹水佬!问题已解决...  

[此贴子已经被作者于2018-5-21 13:57编辑过]


shenkj001@
2018-05-21 11:12
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
得分:0 
表文件加密安全系数不高呀。
2018-09-02 10:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-487106-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.088881 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved