Меня эти сроки вообще убили - получается, что ты внутрь функций даже не заглянул!
Я сделал через Ж..., но ты меня переплюнул!
что тебя тут убило? ВСЁ работает, но только с инглиш теккстом, и чо я должен увидать на скрине? русский текст из текстовых полей КРИПТУЕТЬСЯ А У МЕНЯ ИЗ ФАЙЛАА! есть вообщето разница, а то что из текстовых полей я знал и без скринов
Эту багу мелкомягкие специально вшили в VB.Net (на C# подобное не знамечено), в связи с повышенной активностью российских хакеров, чтобы пресечь написание вирусов под Windows Vista.
ЛОЛ ) это гон полный это вообще х.з как назвать...
Мля, ну вот знал же, что не надо давать сырой код.
Код нармальный т.к всё работает просто гон с русским текстом...
кстати насчёт кода, а можно заменить ироглифы которые он шифрует на чтонибуть по лучше? или это от ключа зависит? я мало чо понял в коде т.к юзаю ВБ.НЕТ пару дней
Лучше бы ты всё-таки сделал по-нормальному и закинул пример сюда - для народного пользования...
Neco, я не буду приводить все свои перегруженные функции (кодировка строки,файла) приведу только самое основное. Остальное, если понравится-доделаешь..
Public Shared Function Crypt(ByVal Password As String, ByVal Data() As Byte, ByVal Encrypt As Boolean) As Byte()
Dim Key As Byte() = Nothing
Dim IV As Byte() = Nothing
Dim outputBuffer() As Byte = Nothing
Dim DESProvider As New TripleDESCryptoServiceProvider
Dim BlockSizeBits As Integer = DESProvider.BlockSize
Dim KeySizeBits As Integer = 0
For i As Integer = 1024 To 1 Step -1
If DESProvider.ValidKeySize(i) Then
KeySizeBits = i
Exit For
End If
Next i
Dim CryptoTransform As ICryptoTransform
If Encrypt Then
CryptoTransform = DESProvider.CreateEncryptor(Key, IV)
Else
CryptoTransform = DESProvider.CreateDecryptor(Key, IV)
End If
Public Shared Function StringToBytes(ByVal Value As String) As Byte()
Return Encoding.UTF8.GetBytes(Value)
End Function
Public Shared Function BytesToString(ByVal Value As Byte()) As String
Return Encoding.UTF8.GetString(Value)
End Function
Private Shared Sub GetKeyAndIV(ByVal password As String, ByVal key_size_bits As Integer, ByVal BlockSizeBits As Integer, ByRef Key As Byte(), ByRef iv As Byte())
Dim password_derive_bytes As New PasswordDeriveBytes(password, Nothing, "SHA384", 1000)
Key = password_derive_bytes.GetBytes(key_size_bits \ 8)
iv = password_derive_bytes.GetBytes(BlockSizeBits \ 8)
End Sub
Public Shared Function ReadAllText(ByVal path As String, ByVal encoding As System.Text.Encoding) As String
Member of: System.IO.File
Summary:
Opens a file, reads all lines of the file with the specified encoding, and then closes the file.
Parameters:
encoding: The encoding applied to the contents of the file.
path: The file to open for reading.
Return Values:
A string array containing all lines of the file.
Dim MyText As String = System.IO.File.ReadAllText("C:\Test.txt", System.Text.Encoding.GetEncoding(1251))
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim MyPass As String = "Твой пароль"
Dim MyData As String = "Тестовые данные для кодирования"
Dim Result() As Byte = Security.Crypt(MyPass, Security.StringToBytes(MyData), True)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim buf() As Byte
buf = Encoding.Unicode.GetBytes("Мой текст на русском"
Dim trans As ICryptoTransform = (New RijndaelManaged).CreateEncryptor(arrKey, arrIV)
Dim f As New IO.FileStream("d:\1.txt", IO.FileMode.OpenOrCreate)
Dim cmp As New IO.Compression.GZipStream(f, IO.Compression.CompressionMode.Compress)
Dim crypt As New CryptoStream(cmp, trans, CryptoStreamMode.Write)
trans = (New RijndaelManaged).CreateDecryptor(arrKey, arrIV)
f = New IO.FileStream("d:\1.txt", IO.FileMode.Open)
cmp = New IO.Compression.GZipStream(f, IO.Compression.CompressionMode.Decompress)
crypt = New CryptoStream(cmp, trans, CryptoStreamMode.Read)
ReDim buf(5000)
ReDim Preserve buf(crypt.Read(buf, 0, 5000))
MsgBox(Encoding.Unicode.GetString(buf))
crypt.Dispose()
cmp.Dispose()
f.Dispose()
End Sub
А функцию декрюпт не падкинеш? а то как расшифровать то?
ZXC,ты вообще код смотрел-то??? Старик.. так нельзя.. Тебе дали все, что нужно!! А тебе даже в коде разобраться ЛЕНЬ!!! Эта ф-я делает и Crypt и DeCrypt.. надо лишь в качестве последнего параметра передать False! В ответе №21 я показал, как пользоваться этим классом!
Кодировка НЕработать не может! Это ты сам накосячил где-то!
Скорее всего.. ты текстовый файл создавал в Notepad, а он по-умолчанию сохраняет файлы в кодировке ANSI.. отсюда и все твои беды.. Либо сохрание его в UTF8, либо переделай код открытия файла под кодировку ANSI..
XOR хорошо шифрует. Только взламывается быстро. Короче если работаешь с ламьем, тебе подойдет. гугла все расскажет.
Можно взять что-нибудь покруче. Например Blowfish. Ае сли надо шифровать TCP или UDP канал бери ZeBeDee2