自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

巧用VB.NET RND()函數(shù)實(shí)現(xiàn)文件加密功能

開(kāi)發(fā) 后端
文章主要巧用VB.NET RND()函數(shù)和強(qiáng)大的二進(jìn)制技術(shù)功能來(lái)實(shí)現(xiàn)文件內(nèi)容加密,希望對(duì)大家有技術(shù)是上的提高。

在VB.NET中定義了很多種的函數(shù),我們不能一一的都使用過(guò),只有你用到過(guò)的函數(shù)你較為熟悉,這里就VB.NET RND()函數(shù)和大家簡(jiǎn)單的分析一下。VB.NET RND()函數(shù)有一個(gè)重要的特征:當(dāng)RND()的參數(shù)(我們稱(chēng)這里可以稱(chēng)它為種子)為負(fù)值時(shí),同一種子(負(fù)值)產(chǎn)生同一個(gè)隨機(jī)數(shù)序列。同時(shí)Visual Basic還具有強(qiáng)大的二進(jìn)制技術(shù)功能,這樣我們可以按以下思路實(shí)現(xiàn)文件內(nèi)容加密:

  1. X=RND(-KEY) ’KEY為正數(shù)  
  2. VAULE=INT(256*RND) ’產(chǎn)生一個(gè)隨機(jī)數(shù)(以此為密碼)  
  3. Open FILENAME$ For Binary As #FILENUM’打開(kāi)文件  
  4. Get #FILENUM,I,A ’取文件內(nèi)容  
  5. B=A XOR VAULE ’得到加密文件 

結(jié)合

  1. C=B XOR VAULE’得到解密文件(B為加密后文件內(nèi)容) 

注意:這里的A非整個(gè)文件內(nèi)容,可以是極少部分、幾個(gè)字節(jié)甚至單個(gè)字節(jié),若為單字節(jié),則文件中的每個(gè)字節(jié)同不同的數(shù)異或,破譯難度可見(jiàn)有多么大。具體過(guò)程:

  1. Sub ENDECODE(FILENAME$,MA,FILE2$)'參數(shù)為:源文件,密碼,目標(biāo)文件  
  2. Dim FILENUM As Integer,X As Single,I As Single  
  3. Dim CHARNUM As Integer,RANDOMINTEGER As Integer  
  4. Dim SINGLECHAR As String *1,filen2 As Integer'取單字節(jié)  
  5. If MA<0 Them  
  6. MAMA=MA*(-1)  
  7. End If  
  8. X=Rnd(-MA)'參數(shù)為負(fù)  
  9. FILENUM=FreeFile 
  10. Open FILENAME$ For Binary As #FILENUM '二進(jìn)制方式打開(kāi)源文件  
  11. filen2=FreeFile 
  12. Open FILE2$ For Output As #filen2’以順序文件打開(kāi)目標(biāo)文件  
  13. For i=1 To LOF(FILENUM)'LOF()文件字節(jié)長(zhǎng)  
  14. Get #FILENUM,i,SINGLECHAR'取單字節(jié)內(nèi)容  
  15. CHARNUM=Asc(SINGLECHAR)  
  16. RANDOMINTEGER=Int(256*Rnd)'得到字母表  
  17. CHARNUMCHARNUM=CHARNUM Xor RANDOMINTEGER'異或  
  18. Print #filen2,Chr$(CHARNUM);’寫(xiě)入目標(biāo)文件  
  19. Next I  
  20. Close FILENUM  
  21. Close filen2  
  22. ok ’調(diào)用成功對(duì)話框  
  23. End Sub 

#T#上面利用VB.NET RND()函數(shù)調(diào)用過(guò)程可以對(duì)任何exe com、文本等文件進(jìn)行加解密(奇數(shù)次加密,偶數(shù)次解密),重演性極好,保密性特優(yōu),若對(duì)上述過(guò)程進(jìn)一步加工,如進(jìn)行多重隨機(jī)等手段處理,那么將會(huì)更上一層樓,在此不累述。順便提一下,上面過(guò)程若對(duì)目標(biāo)文件同樣以二進(jìn)制文件打開(kāi)、寫(xiě)入,那么只能對(duì)純西文文本進(jìn)行加解密,對(duì)于純中文文本則通過(guò)修改取雙字節(jié)、I的步長(zhǎng)為2來(lái)實(shí)現(xiàn),其它(中西文結(jié)合文本、exe com等文件)則將得不到預(yù)期結(jié)果,其原因可以能是ascll大于127的字符,不能正常顯示,不能用put語(yǔ)句正常寫(xiě)入文件(得到的只是空格),有興趣者不妨一試。

責(zé)任編輯:田樹(shù) 來(lái)源: 博客
相關(guān)推薦

2010-01-18 16:33:57

VB.NET加密文件

2010-01-12 10:48:54

VB.NET LIST

2010-01-22 15:25:46

VB.NET Time

2010-01-13 13:53:32

VB.NET組件封裝

2010-01-19 10:03:35

VB.NET Labe

2009-10-20 14:09:05

VB.NET反射功能

2010-01-20 13:42:10

VB.NET訪問(wèn)INIGetPrivateP

2009-10-15 17:50:48

VB.NET Spli

2009-10-21 10:45:50

VB.NET Quic

2009-11-10 17:22:23

VB.NET Form

2009-11-02 14:48:45

VB.NET HOOK

2010-01-13 09:45:53

VB.NET Arra

2010-01-22 16:39:46

VB.NET添加自動(dòng)查

2009-10-14 10:08:05

VB.NET編寫(xiě)DEC

2009-10-14 09:29:43

VB.NET加密

2010-01-07 13:40:50

VB.NET讀取XML

2009-10-29 13:46:14

VB.NET DES加

2010-01-18 10:33:28

VB.NET基本函數(shù)

2009-10-26 10:44:27

VB.NET API函

2009-10-28 15:01:59

VB.NET SHEL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)