Как сделать шифратор текста по ключу, т.е вводиш ключь анпример 123456 и текст ( текставой файл) шифруеться, а чтобы дешифровать надо ввести ключ и если он правельный то текст расшифроовываеться а если нет то нет :) или выдаёться другой :) заранее введённый, желательно исходничек :) или примерчик...по ключу нигде нивидал, или подскажите как алгоритмы применять, всем спасибо!
Dim face_crypter As ICryptoTransform ' интерфейс криптования
face_crypter = (New RijndaelManaged).CreateEncryptor(arrKey, arrIV)
Потом можно загонять в файл, передавать по сетке (в общем, любые операции посредством Stream).
Ещё у этой хрени есть метод TransformFinalBlock, но я ним как-то не успел разобраться...
Dim strm_base As New IO.MemoryStream Dim strm_crypter As CryptoStream
Private Sub btnCrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCrypt.Click
If txtSource.Text.Length = 0 Then
MsgBox("Введите текст!", MsgBoxStyle.Exclamation)
Exit Sub
End If
txtCode.Text = PASS_Crypt(txtSource.Text, "Мой ключ", "Мой вектор"
End Sub
Private Sub btnDeCrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeCrypt.Click
If txtCode.Text.Length = 0 Then
MsgBox("Требуется материал для расшифровки!", MsgBoxStyle.Exclamation)
Exit Sub
End If
Try
txtResult.Text = PASS_DeCrypt(txtCode.Text, "Мой ключ", "Мой вектор"
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Private Function PASS_Crypt(ByVal strToCrypt As String, ByVal strKey As String, ByVal strInitVector As String) As String
Dim arrKey, arrIV As Byte() ' массивы ключа и вектора
If strKey.Length > 16 Or strInitVector.Length > 16 Then
Return Nothing ' ключ или вектор имеет слишком большую длину
End If
'Dim rez As String = Encoding.Default.GetString(bbOut, 0, bbOut.Length) ' face_crypter.OutputBlockSize)
Dim strm_base As New IO.MemoryStream ' меморёвый поток
Dim strm_crypter As CryptoStream ' поток-посредник, использующий объект face_crypter, чтобы писать в strm_base
strm_crypter = New CryptoStream(strm_base, face_crypter, CryptoStreamMode.Write)
' пишем в поток шифровку
Dim writer As New IO.StreamWriter(strm_crypter)
writer.Write(strToCrypt)
writer.Flush()
' даём возможность face_crypter дописать в конец шифровки всё, что надо для расшифровывания
strm_crypter.FlushFinalBlock()
' достаём
Dim rez As String = Encoding.Default.GetString(strm_base.GetBuffer, 0, CInt(strm_base.Length))
' даём установку на разложение
writer.Dispose()
face_crypter.Dispose()
Return rez
End Function
Private Function PASS_DeCrypt(ByVal strToDeCrypt As String, ByVal strKey As String, ByVal strInitVector As String) As String
Dim arrKey, arrIV As Byte() ' массивы ключа и вектора
If strKey.Length > 16 Or strInitVector.Length > 16 Then
Return Nothing ' ключ или вектор имеет слишком большую длину
End If
Всё сделал но при шифрование файла с русскими буквами НЕ РАБОТАЕТ декриптор..что делать? у меня уже был глюк что ВБ.NET не записывает в файл русские буквы..помогите
( сделал шифратор текста НО шифрует файл с русскими буквами но не расшифровывает! вот код
Using myFileStream As New IO.FileStream(opd.FileName, IO.FileMode.Create)
Dim myStreamWriter As New IO.StreamWriter(myFileStream)
sfiledecrypt = PASS_DeCrypt(filedecrypt, txtkey2.Text, txtkey2.Text)
myStreamWriter.Write(sfiledecrypt)
myStreamWriter.Close()
End Using
opd - OpenFileDialog
ну а остальное это стандарт, вообщем, кто знает как русский текст дешифровывать? самое интерестное что пример который выше шифрует русские символы, значит проблема или в открытии файла или ещё в чёмто..помогите плз...
Мля, ну вот знал же, что не надо давать сырой код.
А ты не пробовал вникать, а не просто ctrl+C > ctrl+V?
Dim myStreamWriter As New IO.StreamWriter(myFileStream)
sfiledecrypt = PASS_DeCrypt(filedecrypt, txtkey2.Text, txtkey2.Text)
Меня эти сроки вообще убили - получается, что ты внутрь функций даже не заглянул!
Я сделал через Ж..., но ты меня переплюнул!
http://www.neco.user.kz/garbage/it_work.PNG
у меня уже был глюк что ВБ.NET не записывает в файл русские буквы..помогите
Эту багу мелкомягкие специально вшили в VB.Net (на C# подобное не знамечено), в связи с повышенной активностью российских хакеров, чтобы пресечь написание вирусов под Windows Vista.