作者在 2006-06-12 07:13:00 发布以下内容
**************************************************
* 一种加密和解密算法 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
* 一种加密和解密算法 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