Подскажите по BlowFish

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Подскажите по BlowFish

Сообщение Pantalone » 03.02.2006 (Пт) 20:05

Есть класс с BlowFish, только не пойму как он работает, запускаю EncryptString("test", "key") и каждый раз возвращает разное, так и надо? DecryptString вообще фигню какую-то возвращает вместо первоначального текста. Как правильно заюзать?
Вложения
clsBlowfish.rar
(11.76 Кб) Скачиваний: 22

AiLEX
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 18.09.2005 (Вс) 11:44
Откуда: Котлас

Сообщение AiLEX » 03.02.2006 (Пт) 20:52

Так и должен разное возвращать
Код: Выделить всё
Dim bf As New clsBlowFish
Dim Ret As String
Ret = bf.EncryptString("Hello", "abcd")
MsgBox bf.DecryptString(Ret, "abcd")

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 03.02.2006 (Пт) 21:07

А почему так не работает?
Код: Выделить всё
Dim blow As New clsBlowfish

Text2 = blow.EncryptString(Text1, "abcd")
Text3 = blow.DecryptString(Text2, "abcd")
Последний раз редактировалось Pantalone 03.02.2006 (Пт) 21:30, всего редактировалось 1 раз.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 03.02.2006 (Пт) 21:29

И так не пашет чего-то
Код: Выделить всё
Ret = bf.EncryptString("hello", "abcd", True)
MsgBox bf.DecryptString(Ret, "abcd", True)

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 03.02.2006 (Пт) 22:50

Не пашет хоть ты тресни!

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 03.02.2006 (Пт) 23:04

попробуй вместо

Код: Выделить всё
Option Explicit


написать

Код: Выделить всё
Dear Program Please Work
ХЎ

AiLEX
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 18.09.2005 (Вс) 11:44
Откуда: Котлас

Сообщение AiLEX » 03.02.2006 (Пт) 23:13

Не может такого быть. Либо что то не то пишешь, либо просто прикалываешся. Если у тебя и это не заработает, то тогда точно второй вариант.
Вложения
BFTest.rar
(10.54 Кб) Скачиваний: 29

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 03.02.2006 (Пт) 23:40

d3drm
Не смешно.

AiLEX
Не работает и щас скажу почему, я понял.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 03.02.2006 (Пт) 23:46

По той же самой причине, по какой не работает RC4 у товарища |kerish| вот тут в первом посте сверху:
http://bbs.vbstreets.ru/viewtopic.php?t ... A&start=30
Проще говоря винда у меня русская, а языковые настройки английские поставил и привет! Уже голову всю изломал что за нафиг такой.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 04.02.2006 (Сб) 17:18

Юникод постарался вроде. Никто не пробовал?

Wild VB Code for Food
Постоялец
Постоялец
 
Сообщения: 387
Зарегистрирован: 16.06.2005 (Чт) 17:34
Откуда: ты, друг? =)) Сообщений: 1234

Сообщение Wild VB Code for Food » 05.02.2006 (Вс) 3:38

Код: Выделить всё
Public Function DecryptString(Text As String, Optional Key As String, Optional IsTextInHex As Boolean) As String
    Dim byteArray() As Byte
    If IsTextInHex = True Then Text = DeHex(Text)
    byteArray() = StrConv(Text, vbFromUnicode)
    Call DecryptByte(byteArray(), Key)
    DecryptString = StrConv(byteArray(), vbUnicode)
End Function


Код: Выделить всё
Public Function EncryptString(Text As String, Optional Key As String, Optional OutputInHex As Boolean) As String
    Dim byteArray() As Byte
    byteArray() = StrConv(Text, vbFromUnicode)
    Call EncryptByte(byteArray(), Key)
    EncryptString = StrConv(byteArray(), vbUnicode)
    If OutputInHex = True Then EncryptString = EnHex(EncryptString)
End Function


Всётаки Юникод.
Из кода видно, что должно передаватся в юникоде, и возвращяется в юникоде

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 05.02.2006 (Вс) 5:42

А нельзя без него как-нить обойтись? Всю малину портит.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 4

    TopList  
cron