|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
闪回的目的是要让数据库在commit之后,还能恢复到之前的某个状态,整库或指定的表。加密|解密
稻加密与解密技g之一FOXPRO篇
作者:CCBZZP
在F的弥,稻莸陌踩呛苤匾,特e是象y行等保密性十分主要的部T,
以是稻莸募用芫吞e主要,P者在L期的弥锌Y出各类稻的加密息争密的
法,但愿Υ蠹矣助,同r也和人人一同探,一同W,配合M步!
FOXPRO橛籼峁┮恍┑图的文件操纵函,使用@些低的操纵函涤艨梢FΦ图文件的操纵,@些低的函抵饕:FCLOSE(),FCREATE(),FEOF(),FERROR(),FFLUSH(),FGETS(),FOPEN(),FPUTS(),FREAD(),FSEEK(),STRTOFILE()等,@些函档木咛逵梅ㄔ诖司筒痪咛宓拿枋,鄙人面的文章中眠@些函档.
1.稻葸M行加密
上面以修正一用舻拿艽a槔碚f明:
程序CHANG_PASSWORD的CLICK()热:
IFVARTYPE(m.id_man)C.OR.VARTYPE(m.id_psd)C
=MESSAGEBOX(]有]冤u不成以更密ao,0+48+0,信息提醒u)=6
RETURN
ELSE
SELECT&father_table.
LOCATEFORALLTRIM(id_man)==ALLTRIM(m.id_man);
.AND.
ALLTRIM(THIS.PARENT.encrypt_data.CLICK(id_psd,m.id_man))==ALLTRIM(m.id_psd);
.AND.!DELETED()
IFFOUND()
IFALLTRIM(m.new_password1)==ALLTRIM(m.new_password2)
REPLACE&father_table..id_psdWITH
THIS.PARENT.encrypt_data.CLICK(m.new_password1,m.id_man)
=MESSAGEBOX(密a更乐成u,0+48+0,信息提醒u)
ELSE
=MESSAGEBOX(密a]有更u纱涡旅艽a纷歧致u,0+48+0,信息提醒u
)
ENDIF
ELSE
=MESSAGEBOX(密a]有更uf密ae`u,0+48+0,信息提醒u)
ENDIF
ENDIF
THIS.PARENT.RELEASE()
程序encrypt_data的CLICK()热:
LPARAMETERSencrypt_password,encrypt_chr
encrypt_chr=ALLTRIM(UPPER(encrypt_chr))
encrypt_chr1=340821960120581
encrypt_long=LEN(encrypt_chr1)
encrypt_chr2=LEFT(encrypt_chr+encrypt_chr+encrypt_chr+encrypt_chr,encrypt_long)
THIS.return_data=
FORi=1TOencrypt_longSTEP1
alteration_chr=CHR(BITXOR(ASC(SUBST(encrypt_chr1,i,1)),ASC(SUBST(encrypt_chr2,i,1))))
THIS.return_data=THIS.return_data+CHR(BITXOR(ASC(SUBST(encrypt_password,i,1)),ASC(alterati
on_chr)))
ENDFOR
RETURNTHIS.return_data
2.稻文件M行加密
假设存在稻文件C:USERS.DBF;
HANDLE1=FOPEN("C:USERS.DBF")
IFHANDLE1<0
MESSAGEBOX("]有找到指定文件...",0+64,"信息提醒!")
RETURN
ENDIF
I=1
HANDLE2=FCREATE("C:USERS.DBF")
DOWHILE.T.
=FSEEK(HANDLE1,I*32)
RETASC=FREAD(HANDLE1,32)
IFASC(RETASC)=13
EXIT
ENDIF
I=I+1
ENDDO
=FSEEK(HANDLE1,0)
RETSTR=FREAD(HANDLE,I*32)
=FWRITE(HANDLE2,RETSTR)
X=I*32
J=0
DOWHILE.NOT.FEOF(HANDLE1)
=FSEEK(HANDLE1,X+J)
RETASC=FREAD(HANDLE1,1)
IFASC(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)
RETURN
3.稻文件M行解密
假设存在稻文件C:USERS.DBF;
HANDLE1=FOPEN("C:USERS.DBF")
IFHANDLE1<0
MESSAGEBOX("]有找到指定文件...",0+64,"信息提醒!")
RETURN
ENDIF
HANDLE2=FCREATE("C:USERS.DBF")
I=1
DOWHILE.T.
=FSEEK(HANDLE1,I*32)
RETASC=FREAD(HANDLE1,32)
IFASC(RETASC)=13
EXIT
ENDIF
I=I+1
ENDDO
=FSEEK(HANDLE1,0)
RETSTR=FREAD(HANDLE,I*32)
=FWRITE(HANDLE2,RETSTR)
X=I*32
J=0
DOWHILE.NOT.FEOF(HANDLE1)
=FSEEK(HANDLE1,X+J)
RETASC=FREAD(HANDLE1,1)
IFASC(RETASC)<2
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)
RETURN
以上假如要Dd说明出.
待m...
mysql的prepare其实是本地PHP客户端模拟的,并没有根据你mysql的设置做字符集的调整。应该交与mysqlserver端做prepare,同时得调用mysql_set_character_set去操作,server才会按照字符集去做转义。 |
|