PornoTraktor, на BlitzMax - высокоуровневый язык смесь бейсика Си паскаля. При возможности подключать длл и юзать функции из уже загруженных системных либ, типа юзер32 - на нем могу написать практически все) Язык очень шустрый компилятор от ассемблера.
Добавлено через 34 минуты NLObP, спасибо за исходники. Я так понял они только для логин сервера. У меня прекрасно проходят авторизацию, значит подводных камней быть не должно))
Первый пакет пройден) Пришлось основательно переработать дельфийские исходники.
Добавлено через 6 часов 29 минут
Цитата:
Сообщение от PornoTraktor
4.с 153 байта по 169 лежит динамический blowfish ключ
со 155 по 171, хотя если без первых двух байт длины пакета то да 153-169
Последний раз редактировалось Rzone, 30.09.2012 в 21:18.
Причина: Добавлено сообщение
Блин, опять проблема. Дошел до криптования логина/пароля в исходниках процедура использующая здоровую библиотеку FGint, переписывать все очень долго, можно конечно сделать библиотеку из сырцов, но хотелось бы разобраться и написать все самому...
Тут вообще ничего не пойму:
Код:
function RSAEncrypt(a,p,rsakey:string):string;
var
sD,sR,sM:string;
m,e,d,r:TFGInt;
begin
if length(a)>14 then setlength(a,14);
while length(a)<14 do a:=a+#0;
if length(p)>16 then setlength(p,16);
while length(p)<16 do p:=p+#0;
sD:=a+p+#0#0#0#0;
sM:=rsakey;
Base10StringToFGInt('65537',e);
Base256StringToFGInt(sD,d);
Base256StringToFGInt(sM,m);
FGIntMontgomeryModExp(d,e,m,r);
FGIntToBase256String(r,sR);
result:=sR;
end;
PornoTraktor, если у тебя функция небольшая криптующая логин/пароль по RSA может поделишься?)
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PublicKey publicKey = keyFactory.generatePublic(
new java.security.spec.RSAPublicKeySpec(
new BigInteger(1, this.publicRsaKey),
new BigInteger("65537"))
);
Cipher rsaCipher = Cipher.getInstance("RSA/ECB/NoPadding");
rsaCipher.init(Cipher.ENCRYPT_MODE, publicKey);
offset = 3;
writeB(rsaCipher.doFinal(buff, offset, 0x80));
если чем-то поможет)) вообще мне кажется лучше взять какие-то готовые либы, чем изобретать велосипед. Кстати - вот везде пишут RSA... RSA, а какой RSA? Там много разновидностей алгоритма (в нашем случае "RSA/ECB/NoPadding") есть и надо знать модуль (65537) - его нигде нету! Пока сам не залез в исходники l2jserver так и не разобрался...