| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5079 人关注过本帖, 1 人收藏
标题:[原创]奉献一个加密/解密程序
取消只看楼主 加入收藏
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
结帖率:100%
收藏(1)
 问题点数:0 回复次数:6 
[原创]奉献一个加密/解密程序

**************************************************
* 一种加密和解密算法 JM.PRG (C)Copyright 2006-2006
* 加密: ?JM("文件名.DBF",88) &&返回.T.为成功
* 解密: ?JM("文件名.DBF",-88) &&返回.T.为成功
* 作者: Tiger5392
* 时间: 2006.06.11
**************************************************
PARAMETERS cFileName,nNumber
PRIVATE cFileName,nNumber,A,B,D
nHandle=FOPEN(cFileName,2)
IF nHandle<>-1
DIMENSION D(1)
ADIR(D,cFileName)
FOR I=1 TO D(1,2)
A=FREAD(nHandle,1)
B=CHR(MOD(ASC(a)+nNumber,256))
FSEEK(nHandle,I)
FWRITE(nHandle,B)
ENDFOR
FCLOSE(nHandle)
RETURN .T.
ELSE
RETURN .F.
ENDIF

搜索更多相关主题的帖子: cFileName 解密 DBF 
2006-06-11 17:54
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 

修改后的更加可靠的加密/解密程序
**************************************************
* 一种加密和解密算法 JM.PRG (C)Copyright 2006-2006
* 加密: ?JM("文件名.DBF",88) &&返回0为成功
* 解密: ?JM("文件名.DBF",-88) &&返回0为成功
* 作者: Tiger5392
* 时间:
* 建立时间 2006.06.11
* 第1次修改时间 2006.06.11
**************************************************
PARAMETERS cFileName,nNumber
PRIVATE cFileName,nNumber,A,B,D
*判断参数的数量是否为2
IF PARAMETERS()<>2
RETURN 1 &&参数数目错
ENDIF
*判断参数的类型是否分别为C和N
IF TYPE("cFileName")<>CHR(67) OR TYPE("nNumber")<>CHR(78)
RETURN 2 &&参数类型错
ENDIF
*判断是否能打开文件进行读写
nHandle=FOPEN(cFileName,2)
IF nHandle=-1
RETURN 3 &&文件打不开或不能写入数据
ENDIF
*加密或解密,成功的话返回0
DIMENSION D(1)
ADIR(D,cFileName)
FOR I=1 TO D(1,2)
A=FREAD(nHandle,1)
B=CHR(MOD(ASC(a)+nNumber,256))
FSEEK(nHandle,I)
FWRITE(nHandle,B)
ENDFOR
FCLOSE(nHandle)
RETURN 0 &&成功
* EOF():JM.PRG (C)Copyright 2006-2006 Tiger5392

[此贴子已经被作者于2006-6-11 22:55:00编辑过]


感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-06-11 22:52
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
再修改后的加密/解密程序
**************************************************
* 一种加密和解密算法 JM.PRG (C)Copyright 2006-2006
* 加密: ?JM("文件名.DBF",88) &&返回0为成功
* 解密: ?JM("文件名.DBF",-88) &&返回0为成功
* 作者: Tiger5392
* 时间:
* 建立时间 2006.06.11
* 第1次修改时间 2006.06.11
* 第2次修改时间 2006.06.16
***********************************
PARAMETERS cFileName,nNumber
PRIVATE cFileName,nNumber,A,B,D
*判断参数的数量是否为2
IF PARAMETERS()<>2
RETURN 1 &&参数数目错
ENDIF
*判断参数的类型是否分别为C和N
IF TYPE("cFileName")<>CHR(67) OR TYPE("nNumber")<>CHR(78)
RETURN 2 &&参数类型错
ENDIF
*判断密钥是否有效
IF nNumber=0 &&2006.06.16修改
ETURN 4 &&密钥为0属无效密钥
ENDIF
*判断是否能打开文件进行读写
nHandle=FOPEN(cFileName,2)
IF nHandle=-1
RETURN 3 &&文件打不开或不能写入数据
ENDIF
*加密或解密,成功的话返回0
DIMENSION D(1)
ADIR(D,cFileName)
FOR I=1 TO D(1,2)
A=FREAD(nHandle,1)
B=CHR(MOD(ASC(a)+nNumber,256))
FSEEK(nHandle,I)
FWRITE(nHandle,B)
ENDFOR
FCLOSE(nHandle)
RETURN 0 &&成功
* EOF():JM.PRG (C)Copyright 2006-2006 Tiger5392

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-06-16 20:26
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
你先复制下去,以后改了再说
看得出来,这个是用十分简单的方法加密的

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-06-17 18:33
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
编写一个应用系统,实际上不需要用任何的表都能顺利运行,因为表可以通过这个应用系统建立。
加密的作用就是想别人即使得到这样的表或任何类型的文件都没有用。建立一个文件的过程中(用fcreate()),一定会产生一个磁盘文件(也就是会留下影子),在解密后运行的时候突然断电也会有解密的文件产生的。这个现象是我这个解密、加密程序的缺陷。

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-06-22 19:50
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 

举一个例子吧。

假如有这样的程序
CLOSE ALL
IF FILE("职工.DBF")
USE 职工.DBF
ELSE
CREATE TABLE 职工 (工号 C(4),姓名 C(8)) &&别的字段略
ENDIF
*....别的语句略。

这个程序片段是假设“职工.DBF”为自由表,且能被VFP随意打开。我们的目的是将这个表加密,用VFP无法打开,那么应该修改为:
CLOSE ALL
IF FILE("职工.DBF")
=JM("职工.DBF",-1332121)
USE 职工.DBF
ELSE
CREATE TABLE 职工 (工号 C(4),姓名 C(8)) &&别的字段略
ENDIF
*....别的语句略。
*程序的最后用上
=JM("职工.DBF",1332121)


感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2007-01-31 22:14
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
你可能不注意使用,两次加密以后要两次解密的。

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2007-02-01 23:36
快速回复:[原创]奉献一个加密/解密程序
数据加载中...
 
   



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

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