您好,登錄后才能下訂單哦!
這篇文章主要講解了“利用VB.NET RND()函數實現文件加密功能”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“利用VB.NET RND()函數實現文件加密功能”吧!
在VB.NET中定義了很多種的函數,我們不能一一的都使用過,只有你用到過的函數你較為熟悉,這里就VB.NET RND()函數和大家簡單的分析一下。VB.NET RND()函數有一個重要的特征:當RND()的參數(我們稱這里可以稱它為種子)為負值時,同一種子(負值)產生同一個隨機數序列。同時Visual Basic還具有強大的二進制技術功能,這樣我們可以按以下思路實現文件內容加密:
X=RND(-KEY) ’KEY為正數 VAULE=INT(256*RND) ’產生一個隨機數(以此為密碼) Open FILENAME$ For Binary As #FILENUM’打開文件 Get #FILENUM,I,A ’取文件內容 B=A XOR VAULE ’得到加密文件
結合
C=B XOR VAULE’得到解密文件(B為加密后文件內容)
注意:這里的A非整個文件內容,可以是極少部分、幾個字節甚至單個字節,若為單字節,則文件中的每個字節同不同的數異或,破譯難度可見有多么大。具體過程:
Sub ENDECODE(FILENAME$,MA,FILE2$)'參數為:源文件,密碼,目標文件 Dim FILENUM As Integer,X As Single,I As Single Dim CHARNUM As Integer,RANDOMINTEGER As Integer Dim SINGLECHAR As String *1,filen2 As Integer'取單字節 If MA<0 Them MAMA=MA*(-1) End If X=Rnd(-MA)'參數為負 FILENUM=FreeFile Open FILENAME$ For Binary As #FILENUM '二進制方式打開源文件 filen2=FreeFile Open FILE2$ For Output As #filen2’以順序文件打開目標文件 For i=1 To LOF(FILENUM)'LOF()文件字節長 Get #FILENUM,i,SINGLECHAR'取單字節內容 CHARNUM=Asc(SINGLECHAR) RANDOMINTEGER=Int(256*Rnd)'得到字母表 CHARNUMCHARNUM=CHARNUM Xor RANDOMINTEGER'異或 Print #filen2,Chr$(CHARNUM);’寫入目標文件 Next I Close FILENUM Close filen2 ok ’調用成功對話框 End Sub
上面利用VB.NET RND()函數調用過程可以對任何exe com、文本等文件進行加解密(奇數次加密,偶數次解密),重演性極好,保密性特優,若對上述過程進一步加工,如進行多重隨機等手段處理,那么將會更上一層樓,在此不累述。順便提一下,上面過程若對目標文件同樣以二進制文件打開、寫入,那么只能對純西文文本進行加解密,對于純中文文本則通過修改取雙字節、I的步長為2來實現,其它(中西文結合文本、exe com等文件)則將得不到預期結果,其原因可以能是ascll大于127的字符,不能正常顯示,不能用put語句正常寫入文件(得到的只是空格),有興趣者不妨一試。
感謝各位的閱讀,以上就是“利用VB.NET RND()函數實現文件加密功能”的內容了,經過本文的學習后,相信大家對利用VB.NET RND()函數實現文件加密功能這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。