繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> 文件IO >> 使用vb.net加密和解密文件。(好象英文灵,中文不灵)

使用vb.net加密和解密文件。(好象英文灵,中文不灵)

2004-10-01 08:26:10  作者:  来源:互联网  浏览次数:42  文字大小:【】【】【
简介:Imports System Imports System.IO Imports System.Security Imports System.Security.Cryptography Imports System.Text Module Encrypt     Private Const sSecretKey As String = "...

Imports System

Imports System.IO

Imports System.Security

Imports System.Security.Cryptography

Imports System.Text

Module Encrypt

Private Const sSecretKey As String = "password"

Public Sub Main()

EncryptFile("c:\temp\test.txt", _

"c:\temp\Encrypted.txt", _

sSecretKey)

DecryptFile("c:\temp\Encrypted.txt", _

"c:\temp\Decrypted.txt", _

sSecretKey)

End Sub

Sub EncryptFile(ByVal sInputFilename As String, _

ByVal sOutputFilename As String, _

ByVal sKey As String)

Dim fsInput As New FileStream(sInputFilename, _

FileMode.Open, FileAccess.Read)

Dim fsEncrypted As New FileStream(sOutputFilename, _

FileMode.Create, FileAccess.Write)

Dim DES As New DESCryptoServiceProvider()

'为DES算法设置安全码.

'必须是64位,8个字节

DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey)

DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey)

'创建DES加密码实例

Dim desencrypt As ICryptoTransform = DES.CreateEncryptor()

'

Dim cryptostream As New CryptoStream(fsEncrypted, _

desencrypt, _

CryptoStreamMode.Write)

'读取文件到数组

Dim bytearrayinput(fsInput.Length - 1) As Byte

fsInput.Read(bytearrayinput, 0, bytearrayinput.Length)

'写到加密文件中

cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length)

cryptostream.Close()

End Sub

Sub DecryptFile(ByVal sInputFilename As String, _

ByVal sOutputFilename As String, _

ByVal sKey As String)

Dim DES As New DESCryptoServiceProvider()

DES.Key() = ASCIIEncoding.ASCII.GetBytes(sKey)

DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey)

'读取加密文件

Dim fsread As New FileStream(sInputFilename, FileMode.Open, FileAccess.Read)

'

Dim desdecrypt As ICryptoTransform = DES.CreateDecryptor()

'

Dim cryptostreamDecr As New CryptoStream(fsread, desdecrypt, CryptoStreamMode.Read)

'输出到解密文件

Dim fsDecrypted As New StreamWriter(sOutputFilename)

fsDecrypted.Write(New StreamReader(cryptostreamDecr).ReadToEnd)

fsDecrypted.Flush()

fsDecrypted.Close()

End Sub

End Module

责任编辑:admin
相关文章