真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

vb.net加密字符串 vbnet字符串函數

求VB.NET生成TET文件的加密方法

使用加密方式存儲即可實現別人無法查看內容,加密的方式有很多,適用你這里使用的是可逆的算法,推薦你使用DES加密

作為一家“創(chuàng)意+整合+營銷”的成都網站建設機構,我們在業(yè)內良好的客戶口碑。成都創(chuàng)新互聯公司提供從前期的網站品牌分析策劃、網站設計、成都網站制作、成都網站建設、外貿營銷網站建設、創(chuàng)意表現、網頁制作、系統(tǒng)開發(fā)以及后續(xù)網站營銷運營等一系列服務,幫助企業(yè)打造創(chuàng)新的互聯網品牌經營模式與有效的網絡營銷方法,創(chuàng)造更大的價值。

Imports?System ?

Imports?System.Collections.Generic ?

Imports?System.Text ?

Imports?System.IO ?

Imports?System.Security ?

Imports?System.Security.Cryptography ?

Namespace?ZU14 ?

NotInheritable?Public?Class?DES ?

Private?iv?As?String?=?"1234的yzo"?

Private?key?As?String?=?"123在yzo"?

'/?summary?

'/?DES加密偏移量,必須是=8位長的字符串 ?

'/?/summary?

Public?Property?IV()?As?String ?

Get ?

Return?iv ?

End?Get ?

Set ?

iv?=?value?

End?Set ?

End?Property ?

'/?summary?

'/?DES加密的私鑰,必須是8位長的字符串 ?

'/?/summary?

Public?Property?Key()?As?String ?

Get ?

Return?key ?

End?Get ?

Set ?

key?=?value?

End?Set ?

End?Property ?

'/?summary?

'/?對字符串進行DES加密 ?

'/?/summary?

'/?param?name="sourceString"待加密的字符串/param?

'/?returns加密后的BASE64編碼的字符串/returns?

Public?Function?Encrypt(sourceString?As?String)?As?String ?

Dim?btKey?As?Byte()?=?Encoding.Default.GetBytes(key) ?

Dim?btIV?As?Byte()?=?Encoding.Default.GetBytes(iv) ?

Dim?des?As?New?DESCryptoServiceProvider() ?

Dim?ms?As?New?MemoryStream() ?

Try ?

Dim?inData?As?Byte()?=?Encoding.Default.GetBytes(sourceString) ?

Try ?

Dim?cs?As?New?CryptoStream(ms,?des.CreateEncryptor(btKey,?btIV),?CryptoStreamMode.Write) ?

Try ?

cs.Write(inData,?0,?inData.Length) ?

cs.FlushFinalBlock() ?

Finally ?

cs.Dispose() ?

End?Try ?

Return?Convert.ToBase64String(ms.ToArray()) ?

Catch ?

End?Try ?

Finally ?

ms.Dispose() ?

End?Try ?

End?Function?'Encrypt ?

'/?summary?

'/?對DES加密后的字符串進行解密 ?

'/?/summary?

'/?param?name="encryptedString"待解密的字符串/param?

'/?returns解密后的字符串/returns?

Public?Function?Decrypt(encryptedString?As?String)?As?String ?

Dim?btKey?As?Byte()?=?Encoding.Default.GetBytes(key) ?

Dim?btIV?As?Byte()?=?Encoding.Default.GetBytes(iv) ?

Dim?des?As?New?DESCryptoServiceProvider() ?

Dim?ms?As?New?MemoryStream() ?

Try ?

Dim?inData?As?Byte()?=?Convert.FromBase64String(encryptedString) ?

Try ?

Dim?cs?As?New?CryptoStream(ms,?des.CreateDecryptor(btKey,?btIV),?CryptoStreamMode.Write) ?

Try ?

cs.Write(inData,?0,?inData.Length) ?

cs.FlushFinalBlock() ?

Finally ?

cs.Dispose() ?

End?Try ?

Return?Encoding.Default.GetString(ms.ToArray()) ?

Catch ?

End?Try ?

Finally ?

ms.Dispose() ?

End?Try ?

End?Function?'Decrypt ?

'/?summary?

'/?對文件內容進行DES加密 ?

'/?/summary?

'/?param?name="sourceFile"待加密的文件絕對路徑/param?

'/?param?name="destFile"加密后的文件保存的絕對路徑/param?

Overloads?Public?Sub?EncryptFile(sourceFile?As?String,?destFile?As?String) ?

If?Not?File.Exists(sourceFile)?Then ?

Throw?New?FileNotFoundException("指定的文件路徑不存在!",?sourceFile) ?

End?If ?

Dim?btKey?As?Byte()?=?Encoding.Default.GetBytes(key) ?

Dim?btIV?As?Byte()?=?Encoding.Default.GetBytes(iv) ?

Dim?des?As?New?DESCryptoServiceProvider() ?

Dim?btFile?As?Byte()?=?File.ReadAllBytes(sourceFile) ?

Dim?fs?As?New?FileStream(destFile,?FileMode.Create,?FileAccess.Write) ?

Try ?

Try ?

Dim?cs?As?New?CryptoStream(fs,?des.CreateEncryptor(btKey,?btIV),?CryptoStreamMode.Write) ?

Try ?

cs.Write(btFile,?0,?btFile.Length) ?

cs.FlushFinalBlock() ?

Finally ?

cs.Dispose() ?

End?Try ?

Catch ?

Finally ?

fs.Close() ?

End?Try ?

Finally ?

fs.Dispose() ?

End?Try ?

End?Sub?'EncryptFile ?

'/?summary?

'/?對文件內容進行DES加密,加密后覆蓋掉原來的文件 ?

'/?/summary?

'/?param?name="sourceFile"待加密的文件的絕對路徑/param?

Overloads?Public?Sub?EncryptFile(sourceFile?As?String) ?

EncryptFile(sourceFile,?sourceFile) ?

End?Sub?'EncryptFile ?

'/?summary?

'/?對文件內容進行DES解密 ?

'/?/summary?

'/?param?name="sourceFile"待解密的文件絕對路徑/param?

'/?param?name="destFile"解密后的文件保存的絕對路徑/param?

Overloads?Public?Sub?DecryptFile(sourceFile?As?String,?destFile?As?String) ?

If?Not?File.Exists(sourceFile)?Then ?

Throw?New?FileNotFoundException("指定的文件路徑不存在!",?sourceFile) ?

End?If ?

Dim?btKey?As?Byte()?=?Encoding.Default.GetBytes(key) ?

Dim?btIV?As?Byte()?=?Encoding.Default.GetBytes(iv) ?

Dim?des?As?New?DESCryptoServiceProvider() ?

Dim?btFile?As?Byte()?=?File.ReadAllBytes(sourceFile) ?

Dim?fs?As?New?FileStream(destFile,?FileMode.Create,?FileAccess.Write) ?

Try ?

Try ?

Dim?cs?As?New?CryptoStream(fs,?des.CreateDecryptor(btKey,?btIV),?CryptoStreamMode.Write) ?

Try ?

cs.Write(btFile,?0,?btFile.Length) ?

cs.FlushFinalBlock() ?

Finally ?

cs.Dispose() ?

End?Try ?

Catch ?

Finally ?

fs.Close() ?

End?Try ?

Finally ?

fs.Dispose() ?

End?Try ?

End?Sub?'DecryptFile ?

'/?summary?

'/?對文件內容進行DES解密,加密后覆蓋掉原來的文件 ?

'/?/summary?

'/?param?name="sourceFile"待解密的文件的絕對路徑/param?

Overloads?Public?Sub?DecryptFile(sourceFile?As?String) ?

DecryptFile(sourceFile,?sourceFile) ?

End?Sub?'DecryptFile ?

End?Class?'DES ?

End?Namespace?'ZU14?

對文本文件加密

Dim?des?As?New?ZU14.DES() ?

des.IV?=?"abcd哈哈笑"?

des.Key?=?"必須八位"?

'加密

des.EncryptFile("d:\a.txt",?"d:\b.txt") ?

'解密

des.DecryptFile("d:\b.txt")

vb.net比較字符串

vb.net規(guī)定如果要比較字符串,不能用“=”,strcomp(str1,str2,n)或者string.compare(str1,str2)

例如:

Dim a As String = "c"

Dim b As String = "c"

Dim n As Integer = String.Compare(a, b)

If n = 0 Then

MsgBox("=")

Else

MsgBox("")

End If

vb.net中實現rsa加密解密 急!急!

我覺得你的并不是RSA加密解密算法。

在.net的有一個System.Security.Cryptography的命名空間,里面有一RSACryptoServiceProvider的類用來對byte進行RSA加密解密。

具體例子如下:

using System;

using System.Security.Cryptography;

using System.Text;

class RSACSPSample

{

static void Main()

{

try

{

//Create a UnicodeEncoder to convert between byte array and string.

UnicodeEncoding ByteConverter = new UnicodeEncoding();

//Create byte arrays to hold original, encrypted, and decrypted data.

byte[] dataToEncrypt = ByteConverter.GetBytes("Data to Encrypt");

byte[] encryptedData;

byte[] decryptedData;

//Create a new instance of RSACryptoServiceProvider to generate

//public and private key data.

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

//Pass the data to ENCRYPT, the public key information

//(using RSACryptoServiceProvider.ExportParameters(false),

//and a boolean flag specifying no OAEP padding.

encryptedData = RSAEncrypt(dataToEncrypt,RSA.ExportParameters(false), false);

//Pass the data to DECRYPT, the private key information

//(using RSACryptoServiceProvider.ExportParameters(true),

//and a boolean flag specifying no OAEP padding.

decryptedData = RSADecrypt(encryptedData,RSA.ExportParameters(true), false);

//Display the decrypted plaintext to the console.

Console.WriteLine("Decrypted plaintext: {0}", ByteConverter.GetString(decryptedData));

}

catch(ArgumentNullException)

{

//Catch this exception in case the encryption did

//not succeed.

Console.WriteLine("Encryption failed.");

}

}

static public byte[] RSAEncrypt(byte[] DataToEncrypt, RSAParameters RSAKeyInfo, bool DoOAEPPadding)

{

try

{

//Create a new instance of RSACryptoServiceProvider.

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

//Import the RSA Key information. This only needs

//toinclude the public key information.

RSA.ImportParameters(RSAKeyInfo);

//Encrypt the passed byte array and specify OAEP padding.

//OAEP padding is only available on Microsoft Windows XP or

//later.

return RSA.Encrypt(DataToEncrypt, DoOAEPPadding);

}

//Catch and display a CryptographicException

//to the console.

catch(CryptographicException e)

{

Console.WriteLine(e.Message);

return null;

}

}

static public byte[] RSADecrypt(byte[] DataToDecrypt, RSAParameters RSAKeyInfo,bool DoOAEPPadding)

{

try

{

//Create a new instance of RSACryptoServiceProvider.

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

//Import the RSA Key information. This needs

//to include the private key information.

RSA.ImportParameters(RSAKeyInfo);

//Decrypt the passed byte array and specify OAEP padding.

//OAEP padding is only available on Microsoft Windows XP or

//later.

return RSA.Decrypt(DataToDecrypt, DoOAEPPadding);

}

//Catch and display a CryptographicException

//to the console.

catch(CryptographicException e)

{

Console.WriteLine(e.ToString());

return null;

}

}

}

[Visual Basic]

Try

'Create a new RSACryptoServiceProvider object.

Dim RSA As New RSACryptoServiceProvider()

'Export the key information to an RSAParameters object.

'Pass false to export the public key information or pass

'true to export public and private key information.

Dim RSAParams As RSAParameters = RSA.ExportParameters(False)

Catch e As CryptographicException

'Catch this exception in case the encryption did

'not succeed.

Console.WriteLine(e.Message)

End Try

[C#]

try

{

//Create a new RSACryptoServiceProvider object.

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

//Export the key information to an RSAParameters object.

//Pass false to export the public key information or pass

//true to export public and private key information.

RSAParameters RSAParams = RSA.ExportParameters(false);

}

catch(CryptographicException e)

{

//Catch this exception in case the encryption did

//not succeed.

Console.WriteLine(e.Message);

}

VB.NET UNICODE碼 顯示

Public?Class?Form1

Dim?b()?As?Byte

Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click

b?=?System.Text.Encoding.Default.GetBytes(TextBox1.Text)

For?i?=?0?To?UBound(b)

TextBox2.AppendText(i.ToString??"?")

Next

End?Sub

Private?Sub?Button2_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button2.Click

TextBox1.Text?=?System.Text.Encoding.Default.GetString(b)

End?Sub

Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load

TextBox1.Text?=?"Google?free?online?translation?service?instantly?translates?text?and?web?pages。?該翻譯器支持:?中文(簡體),?中文(繁體),?shqip,?日本語,?русский,?langue?fran?aise?..."

End?Sub

End?ClassVB.Net中用String類型表示字符串,內部采用Unicode編碼。當需要在網絡或串口中收發(fā)字符串時,就需要在String和Byte數組之間進行轉換,這項功能可以通過System.Text.Encoding類實現。

Private zeroChars()?As Char?=?{ChrW(0)}

Dim descBytes()?As Byte?=?System.Text.Encoding.Unicode.GetBytes(mDescription)

Dim?description As?String?=?System.Text.Encoding.Unicode.GetString(rBuffer,?offset,?length).TrimEnd(zeroChars)

說明:C語言中用'\0'表示字符串結束,而String類型中0是有效字符,顯示時是空白字符,會占用顯示寬度,可以用TrimEnd方法將字符串末尾的零字符去掉。

主要敘說一下StrConv 函數conversion參數最后兩個值的含義和用途,并舉例說明。

1、語法

StrConv(string, conversion, LCID)

StrConv 函數的語法有下面的命名參數:

部分 說明

string 必要參數。要轉換的字符串表達式。

conversion 必要參數。Integer。其值的和決定轉換的類型。

LCID 可選的。如果與系統(tǒng)LocaleID不同,則為LocaleID(系統(tǒng)LocaleID為缺省值。)

設置值

conversion 參數的設置值為:

常數 值 說明

vbUpperCase 1 將字符串文字轉成大寫。

vbLowerCase 2 將字符串文字轉成小寫。

vbProperCase 3 將字符串中每個字的開頭字母轉成大寫。

vbWide* 4* 將字符串中單字節(jié)字符轉成雙字節(jié)字符。

vbNarrow* 8* 將字符串中雙字節(jié)字符轉成單字節(jié)字符。

vbKatakana** 16** 將字符串中平假名字符轉成片假名字符。

vbHiragana** 32** 將字符串中片假名字符轉成平假名字符。

vbUnicode 64 根據系統(tǒng)的缺省碼頁將字符串轉成 Unicode。

vbFromUnicode 128 將字符串由 Unicode 轉成系統(tǒng)的缺省碼頁。

*應用到遠東國別。

**僅應用到日本。

說明:前面3個參數比較簡單,后面4個我們用不上,就不說了,主要說說后面兩個。

2、ANSI 格式

語法中說的缺省碼頁就是ANSI模式,英文環(huán)境下 的ANSI 格式其實也就是ASCII碼,其它環(huán)境就不一樣了,比如中文環(huán)境,就是ASCII,一個字節(jié)表示一個字符,GB2312,2個字節(jié)表示一個漢字,所以中文環(huán)境下的ANSI格式就是ASCII碼+GB2312,早期的DOS系統(tǒng)中純文本就是這種格式,這種格式下,通過最高位來判斷是中文字符(最高位是1)還是ASCII字符(最高位是0)。中文環(huán)境下保存文本文件時一般都采用ANSI格式,不過也有其他格式,比如UTF-8。

3、Unicode編碼

Unicode(統(tǒng)一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode 是為了解決傳統(tǒng)的字符編碼方案的局限而產生的,它為每種語言中的每個字符設定了統(tǒng)一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。Unicode用兩個字節(jié)表示一個字符,涵蓋了世界上所有字符,和以前的字符集都不兼容,VB內部字符串就是采用Unicode編碼,所以當我們打開一個文本文件讀入數據的時候,其內存中的內容和文本文件的內容是不一樣的,經過了轉換,除非你采用二進制方式讀入。

4、vbUnicode和vbFromUnicode含義

有了上面敘說,這兩個參數的含義就好理解了,就是Unicode編碼和ANSI編碼的互換,例如:

? ? ? textline= StrConv(plaintext,vbUnicode) ?

這兒textline是以字符串變量,plaintext是以字節(jié)變量保存著ANSI模式的字符內容,例如,“2”這個字符,一個字節(jié),值是50,16進制是32,“皖”這個漢字,兩個字節(jié),值是205和238,同樣是這兩個字符,作為字符串在內存中都是兩個字節(jié),例如,“2”這個字符在內存中16進制值是0032。當VB打開一個文件讀取文本內容是,實際上自動進行了上述轉換。

? ? ?plaintext?= StrConv(textline,?vbFromUnicode)

這兒進行相反的轉換,就是將Unicode字符串轉換成ANSI模式,轉換結果必須以字節(jié)方式保存。

5、vbUnicode和vbFromUnicode用途

由于字符在內存中的內容和文件中的內容不一致,所以必須要用到這種轉換,特別是系統(tǒng)間進行數據交換、數據加密和解密,如果不做轉換可能導致得不到正確的結果。

比如,我們對一個文本文件進行加密,這個文件是ANSI格式存儲的,當從文件內容讀入一行到內存的時候,自動將內容轉換成了Unicode格式,如果這時候對其做加密運算,其結果和文件中字符串加密結果是不一樣的,這樣的結果如果讓別人解密將無法得到正確的結果。如果對讀入內存的內容先做個轉換(textline是讀入內容):

? ? ?plaintext?= StrConv(textline,?vbFromUnicode)

再對plaintext做加密,其結果就一樣了。

舉例(按行做加密和解密運算,算法是AES+Base64):

[vb]?view plain?copy

Status?=?"Encrypting?File"

Open?FileName?For?Input?As?#1??????'?打開輸入文件。

Open?FileName2?For?Output?As?#2?????'?打開輸出文件。

Do?While?Not?EOF(1)

Line?Input?#1,?TextLine

plaintext?=?StrConv(TextLine,?vbFromUnicode)

Status?=?"Encrypting?Data"

m_Rijndael.SetCipherKey?pass,?KeyBits

m_Rijndael.ArrayEncrypt?plaintext,?ciphertext,?0

Status?=?"Converting?Text?to?Base64"

TextLine?=?Base64Encode(ciphertext)

Status?=?""

Print?#2,?TextLine????'?將字符串寫入文件。

Loop

Close

[vb]?view plain?copy

Status?=?"Decrypting?File"

Open?FileName?For?Input?As?#1??????'?打開輸入文件。

Open?FileName2?For?Output?As?#2????'?打開輸出文件。

Do?While?Not?EOF(1)

Line?Input?#1,?TextLine

Status?=?"Converting?Base64?to?Text"

ciphertext?=?Base64Decode(TextLine)

Status?=?"Decrypting?Data"

m_Rijndael.SetCipherKey?pass,?KeyBits

If?m_Rijndael.ArrayDecrypt(plaintext,?ciphertext,?0)??0?Then

Status?=?""

Exit?Sub

End?If

TextLine?=?StrConv(plaintext,?vbUnicode)

For?i?=?0?To?UBound(plaintext)

Debug.Print?plaintext(i)

Next?i

k?=?InStr(1,?TextLine,?Chr(0),?vbBinaryCompare)

If?k??0?Then?TextLine?=?Left(TextLine,?k?-?1)????'截掉加密時補的0

MsgBox?TextLine??"end"

Status?=?""

Print?#2,?TextLine????'?將字符串寫入文件。

Loop

Close


名稱欄目:vb.net加密字符串 vbnet字符串函數
標題來源:http://weahome.cn/article/hisdpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部