国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

巧用VISUALBASIC的RND()函數

2019-11-18 17:39:17
字體:
來源:轉載
供稿:網友
VISUALBASIC的RND()函數有一個重要的特征:當RND()的參數(我們稱這里可以稱它為種子)為負值時,同一種子(負值)產生同一個隨機數序列。同時VISUALBASIC還具有強大的二進制技術功能,這樣我們可以按以下思路實現文件內容加密:
X=RND(-KEY)
'KEY為正數
VAULE=INT(256*RND)'產生一個隨機數(以此為密碼)
OpenFILENAME$ForBinaryAs#FILENUM'打開文件
Get#FILENUM,I,A'取文件內容
B=AXORVAULE'得到加密文件
結合
C=BXORVAULE'得到解密文件(B為加密后文件內容)
注意:這里的A非整個文件內容,可以是極少部分、幾個字節甚至單個字節,若為單字節,則文件中的每個字節同不同的數異或,破譯難度可見有多么大。具體過程:
SubENDECODE(FILENAME$,MA,FILE2$)'參數為:源文件,密碼,目標文件
DimFILENUMAsInteger,XAsSingle,IAsSingle
DimCHARNUMAsInteger,RANDOMINTEGERAsInteger
DimSINGLECHARAsString*1,filen2AsInteger'取單字節
IfMA<0Them
MA=MA*(-1)
EndIf
X=Rnd(-MA)'參數為負
FILENUM=FreeFile
OpenFILENAME$ForBinaryAs#FILENUM'二進制方式打開源文件
filen2=FreeFile
OpenFILE2$ForOutputAs#filen2'以順序文件打開目標文件
ForI=1ToLOF(FILENUM)'LOF()文件字節長
Get#FILENUM,I,SINGLECHAR'取單字節內容
CHARNUM=Asc(SINGLECHAR)
RANDOMINTEGER=Int(256*Rnd)'得到字母表
CHARNUM=CHARNUMXorRANDOMINTEGER'異或
EndSub
調用格式:ENDECODE源文件名,密碼,目標文件名
上面過程可以對任何EXE、COM、文本等文件進行加解密(奇數次加密,偶數次解密),重演性極好,保密性特優,若對上述過程進一步加工,如進行多重隨機等手段處理,那么將會更上一層樓,在此不累述。
順便提一下,上面過程若對目標文件同樣以二進制文件打開、寫入,那么只能對純西文文本進行加解密,對于純中文文本則通過修改取雙字節、I的步長為2來實現,其它(中西文結合文本、EXE、COM等文件)則將得不到預期結果,其原因可以能是ASCII大于127的字符,不能正常顯示,不能用put語句正常寫入文件(得到的只是空格),有興趣者不妨一試。
->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黎平县| 德阳市| 泰顺县| 肇东市| 调兵山市| 贵阳市| 渭源县| 屏南县| 和田市| 石楼县| 华安县| 盐池县| 酉阳| 许昌县| 房产| 榆树市| 彭泽县| 呈贡县| 额济纳旗| 和龙市| 康平县| 左贡县| 陵川县| 中方县| 绥宁县| 远安县| 蕉岭县| 伽师县| 南宫市| 大化| 延津县| 沙坪坝区| 正安县| 伽师县| 丰都县| 巩留县| 柏乡县| 武定县| 东台市| 唐海县| 渝北区|