gpt4 book ai didi

vb.net - 加密为SHA1 Visual Basic-VB 2010

转载 作者:行者123 更新时间:2023-12-04 22:23:16 26 4
gpt4 key购买 nike

我有一个在线SMF论坛,当用户注册时,数据库中的密码用SHA1加密。我需要创建一个具有登录功能的VB程序,只有论坛成员才能登录。现在,我遇到的问题是如何在Visual Basic中将密码加密为SHA1?我提供了一些我不知道是否正确的代码,因此请帮助我。

Imports System.Security.Cryptography
Public Class Form2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' declare those variables
Dim password As String
Dim passwordSHA As String

password = txtPassword.Text ' give password the value of the password textbox

Call passwordEncryptSHA(password) ' Lets call the first password encryption function for SHA1

passwordSHA = passwordEncryptSHA(password) ' give the variable the returned SHA value

' finally we will display both values in the corresponding textboxes
txtSHA1.Text = passwordSHA


End Sub
Public Function passwordEncryptSHA(ByVal password As String) As String
Dim sha As New SHA1CryptoServiceProvider ' declare sha as a new SHA1CryptoServiceProvider
Dim bytesToHash() As Byte ' and here is a byte variable

bytesToHash = System.Text.Encoding.ASCII.GetBytes(password) ' covert the password into ASCII code

bytesToHash = sha.ComputeHash(bytesToHash) ' this is where the magic starts and the encryption begins

Dim encPassword As String = ""

For Each b As Byte In bytesToHash
encPassword += b.ToString("x2")
Next

Return encPassword ' boom there goes the encrypted password!

End Function

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

End Sub
End Class

谢谢,请不要mean,因为我还在学习(我15岁)!

最佳答案

Imports System.IO
Public Class Form1

Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyValue = Keys.Enter Then
TextBox2.Text = getSHA1Hash(TextBox1.Text)
Label3.Text = TextBox2.Text.Length
End If
End Sub

Function getSHA1Hash(ByVal strToHash As String) As String

Dim sha1Obj As New Security.Cryptography.SHA1CryptoServiceProvider
Dim bytesToHash() As Byte = System.Text.Encoding.ASCII.GetBytes(strToHash)

bytesToHash = sha1Obj.ComputeHash(bytesToHash)

Dim strResult As String = ""

For Each b As Byte In bytesToHash
strResult += b.ToString("x2")
Next

Return strResult

End Function

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim fs As New FileStream("location.txt", FileMode.OpenOrCreate, FileAccess.Write)
Dim sr As New StreamWriter(fs)
fs.SetLength(0)
sr.WriteLine(Me.Location.X)
sr.WriteLine(Me.Location.Y)
sr.Close()
fs.Close()
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If File.Exists("location.txt") Then
Dim fs As New FileStream("location.txt", FileMode.Open, FileAccess.Read)
Dim sr As New StreamReader(fs)

Me.Location = New Point(sr.ReadLine, sr.ReadLine)
sr.Close()
fs.Close()
End If
End Sub

Private Sub TextBox1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
If e.KeyValue = Keys.Escape Then
Application.Exit()
End If
End Sub
End Class

所以:-)这是我为您创建的一个小程序,希望它对您有帮助,学习愉快。
提示:忽略多余的定位代码,它只是懒惰的程序员的一个老习惯...,顺便说一句,哈希是一种方式,加密是两种方式(您可以先加密然后解密以获取相同的数据,但是无法取消哈希数据)。

关于vb.net - 加密为SHA1 Visual Basic-VB 2010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10924238/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com