| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
免费IT实战开发视频教程合集分享千里之行 始于足下
共有 541 人关注过本帖
标题:请帮忙解决这段加密代码,如何写出解密代码
只看楼主 加入收藏
shenkj001
Rank: 2
来 自:河南安阳
等 级:论坛游民
威 望:4
帖 子:302
专家分:45
注 册:2005-5-23
结帖率:88%
  已结贴   问题点数: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编辑过]

2018-05-20 21:12
shenkj001
Rank: 2
来 自:河南安阳
等 级:论坛游民
威 望:4
帖 子:302
专家分:45
注 册: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@163.com
2018-05-20 22:40
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:163
帖 子:6309
专家分:27558
注 册: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: 2
来 自:河南安阳
等 级:论坛游民
威 望:4
帖 子:302
专家分:45
注 册: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@163.com
2018-05-21 11:12
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:19
帖 子:378
专家分:888
注 册:2004-11-23
  得分:0 
表文件加密安全系数不高呀。
2018-09-02 10:10







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

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