65.9K
CodeProject 正在变化。 阅读更多。
Home

加密应用程序

2008年5月12日

CPOL
viewsIcon

23432

downloadIcon

291

用于加密和解密的应用程序

DecryptoImage - maximum width is 600 pixels CryptoImage width=

引言

这是一个有用的应用程序,用于将数据安全地保存在您的计算机上。

背景

是否有任何背景信息对本文有所帮助,例如对所介绍的基本概念的介绍?

如今,间谍活动和盗窃非常普遍。随着时间的推移,我们意识到将数据保存在特殊位置并进行安全加密的必要性。这是我们必须思考的事情……

使用代码

步骤 1. 您需要做什么
1. 在您的网站目录中添加名为“zastita”的文件夹
2. 将 Default.aspx 页面放入 “zastita” 文件夹中

Imports Microsoft.VisualBasic
Imports System.Security.Cryptography
Public Class zastita_Default
    Inherits System.Web.UI.Page
    Dim filepart As String

    Sub Crypt()
        Dim textinput As String
        Dim password As String
        password = Lozinka.Text()
        textinput = Ciuso.Text()
        filepart = TextBox1.Text
        Dim empire As New crypto(password)
        Dim cryptoText As String = empire.EncryptData(textinput)

        Ciuso.Text = ("The crypto text is: " &_
        cryptoText)
        My.Computer.FileSystem.WriteAllText( _
            My.Computer.FileSystem.SpecialDirectories.MyDocuments
            &filepart, cryptoText, False)
    End Sub
    
    Sub Decrypt()
        filepart = TextBox1.Text
        Dim cryptoText As String = _
        My.Computer.FileSystem.ReadAllText( _
        My.Computer.FileSystem.SpecialDirectories.MyDocuments _
        & filepart)


        Dim password As String
        password = Lozinka.Text()
        Dim empire As New crypto(password)

        Try
            Dim textinput As String = _
            empire.DecryptData(cryptoText)
            Ciuso.Text = (textinput)
        Catch ex As _
        System.Security.Cryptography.CryptographicException
            MsgBox("Please write correct password           ",_                    
            MsgBoxStyle.Information, "Information")

        End Try
    End Sub

    Protected Sub EncodeB_Click(ByVal sender As Object,_
    ByVal e As System.EventArgs) Handles EncodeB.Click
        Crypt()
    End Sub

    Protected Sub DecodeB_Click(ByVal sender As Object,_
    ByVal e As System.EventArgs) Handles DecodeB.Click
        Decrypt()
    End Sub   
 
End Class

步骤 2. 将 crypto.vb 页面放入 App_Code 文件夹中

Language="VB"

Imports Microsoft.VisualBasic
Imports System.Security.Cryptography

Public NotInheritable Class crypto
    Inherits System.Web.UI.Page
    Private TripleDes As New _
    TripleDESCryptoServiceProvider
    Private Function TruncateHash( _
    ByVal key As String, _
    ByVal length As Integer) _
    As Byte()
        Dim sha1 As New SHA1CryptoServiceProvider()
        Dim keyBytes() As Byte = _
            System.Text.Encoding.Unicode.GetBytes(key)
        Dim hash() As Byte = sha1.ComputeHash(keyBytes)

        ReDim Preserve hash(length - 1)
        Return hash
    End Function
    Sub New(ByVal key As String)
        TripleDes.Key = TruncateHash(key,_
        TripleDes.KeySize \ 8)
        TripleDes.IV = TruncateHash("", _
        TripleDes.BlockSize \ 8)
    End Sub
    Public Function EncryptData( _
        ByVal textinput As String) _
        As String

        Dim textinputBytes() As Byte = _
            System.Text.Encoding.Unicode.GetBytes(textinput)
        Dim ms As New System.IO.MemoryStream
        Dim encStream As New CryptoStream(ms,_
        TripleDes.CreateEncryptor(), _
            System.Security.Cryptography.CryptoStreamMode.Write)

        encStream.Write(textinputBytes, 0,textinputBytes.Length)
        encStream.FlushFinalBlock()

        Return Convert.ToBase64String(ms.ToArray)
    End Function
    Public Function DecryptData(ByVal encryptedtext As_
    String) As String
        Dim encryptedBytes() As Byte = Convert.FromBase64String_
        (encryptedtext)
        Dim ms As New System.IO.MemoryStream
        Dim decStream As New CryptoStream_
        (ms,TripleDes.CreateDecryptor(), _
            System.Security.Cryptography.CryptoStreamMode.Write)

        decStream.Write(encryptedBytes, 0, encryptedBytes.Length)
        decStream.FlushFinalBlock()

        Return System.Text.Encoding.Unicode.GetString(ms.ToArray)
    End Function

End Class
© . All rights reserved.