Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Уважаемые программисты помогите преобразовать 
:(
    Опции темы
desti1984
Дата 28.9.2009, 18:01 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 28.9.2009

Репутация: нет
Всего: нет



Код

/*
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version. This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details. You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package net.sf.l2j.loginserver.crypt;

import java.math.BigInteger;
import java.security.KeyPair;
import java.security.interfaces.RSAPublicKey;

import org.apache.log4j.Logger;

/**
 *
 */
public class ScrambledKeyPair {
    private static Logger _log = Logger.getLogger(ScrambledKeyPair.class
            .getName());
    public KeyPair _pair;
    public byte[] _scrambledModulus;

    public ScrambledKeyPair(final KeyPair pPair) {
        this._pair = pPair;
        this._scrambledModulus = this
                .scrambleModulus(((RSAPublicKey) this._pair.getPublic())
                        .getModulus());
    }

    private byte[] scrambleModulus(final BigInteger modulus) {
        byte[] scrambledMod = modulus.toByteArray();

        if (scrambledMod.length == 0x81 && scrambledMod[0] == 0x00) {
            final byte[] temp = new byte[0x80];
            System.arraycopy(scrambledMod, 1, temp, 0, 0x80);
            scrambledMod = temp;
        }
        // step 1 : 0x4d-0x50 <-> 0x00-0x04
        for (int i = 0; i < 4; i++) {
            final byte temp = scrambledMod[0x00 + i];
            scrambledMod[0x00 + i] = scrambledMod[0x4d + i];
            scrambledMod[0x4d + i] = temp;
        }
        // step 2 : xor first 0x40 bytes with last 0x40 bytes
        for (int i = 0; i < 0x40; i++)
            scrambledMod[i] = (byte) (scrambledMod[i] ^ scrambledMod[0x40 + i]);
        // step 3 : xor bytes 0x0d-0x10 with bytes 0x34-0x38
        for (int i = 0; i < 4; i++)
            scrambledMod[0x0d + i] = (byte) (scrambledMod[0x0d + i] ^ scrambledMod[0x34 + i]);
        // step 4 : xor last 0x40 bytes with first 0x40 bytes
        for (int i = 0; i < 0x40; i++)
            scrambledMod[0x40 + i] = (byte) (scrambledMod[0x40 + i] ^ scrambledMod[i]);
        ScrambledKeyPair._log.trace("Modulus was scrambled");

        return scrambledMod;
    }
}


очень нужно переделать в CSharp
PM MAIL   Вверх
mr.DUDA
Дата 29.9.2009, 01:25 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Код
// ну как бы код за вас никто не напишет, 
// слишком дофига в вашем примере специфичных классов
// для криптографии в Java и поэтому давайте задавайте
// конкретные вопросы что вам лично непонятно в C#
// ответим



--------------------
user posted image
PM MAIL WWW   Вверх
LaiQ
Дата 24.4.2010, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 24.4.2010

Репутация: нет
Всего: нет



Здравствуйте, случайно наткнулся на эту тему в поисковике. Интересует этот же файл, но не весь. 
Код

_scrambledModulus = scrambleModulus(((RSAPublicKey) _pair.getPublic()).getModulus());
        }

        private byte[] scrambleModulus(BigInteger modulus)


если не трудно, объясните пожалуйста что подразумевается под ((RSAPublicKey) _pair.getPublic()).getModulus(), и почему Java допускает конвертирование в BigInt.
Я предположил что в это Public Key. Но при использовании Конвертации во время работы приложения возникает ошибка Не удалось привести тип объекта RSAParameter к типу IConvertible

Заранее извиняюсь за свои не совсем большие познания я ЯП smile
PM MAIL   Вверх
diadiavova
Дата 24.4.2010, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Цитата(LaiQ @  24.4.2010,  15:41 Найти цитируемый пост)
и почему Java допускает 

Может этот вопрос уместнее было бы задать в разделе, посвящённом Java?


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
LaiQ
Дата 24.4.2010, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 24.4.2010

Репутация: нет
Всего: нет



Да не в том дело.
А том как написать это на CSharp'e
PM MAIL   Вверх
Экскалупатор
Дата 24.4.2010, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



LaiQ, я думаю что если ты выразишь мысль в виде: "как мне сделать что то(свой вариант) на C#?", то тебе скорее всего подскажут. а спрашивать почему что то в яве это не в этой ветке. я думаю тут даже никто разбираться сильно не станет что там ява делает, и что именно ты хочешь переделать на шарп..

Добавлено через 1 минуту
Цитата(LaiQ @  24.4.2010,  14:41 Найти цитируемый пост)
А том как написать это на CSharp'e 


выскажи что именно "это" ты хочешь сделать.
PM MAIL ICQ   Вверх
LaiQ
Дата 24.4.2010, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 24.4.2010

Репутация: нет
Всего: нет



Хочу узнать аналог 
Код

_scrambledModulus = scrambleModulus(((RSAPublicKey) _pair.getPublic()).getModulus());
 на CSharp

Как мне это сделать?

Это сообщение отредактировал(а) LaiQ - 24.4.2010, 16:13
PM MAIL   Вверх
Экскалупатор
Дата 24.4.2010, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



Цитата(LaiQ @  24.4.2010,  15:12 Найти цитируемый пост)
Хочу узнать аналог 


а что именно делает эта строка? сначала узнай что тебе нужно(а это нужно узнать в ветке форума, которая посвящена яве) а потом уже тут спрашивай как это сделать на шарпе.
PM MAIL ICQ   Вверх
diadiavova
Дата 24.4.2010, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Цитата(LaiQ @  24.4.2010,  17:12 Найти цитируемый пост)
Хочу узнать аналог 

На шарпе это записывается так же(языки очень похожи), другой вопрос, что в этом коде используются специфичные для явы классы и прочие дела и вот их то как раз в этой ветке мало кто знает. Переводить код "дословно" - занятие крайне неблагодарное, такой код зачастую даже в рамках одной технологии не хочет работать как надо, портировать код можно только "по смыслу", то есть иходя из того, что он делает.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
GoldFinch
Дата 24.4.2010, 17:43 (ссылка)    | (голосов:7) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



картина маслом:
быдлокодеры переносят l2j на c#

Добавлено через 7 минут и 47 секунд
Цитата(LaiQ @  24.4.2010,  17:12 Найти цитируемый пост)

_scrambledModulus = scrambleModulus(
    ((RSAPublicKey) _pair.getPublic()).getModulus()
);

вот в этой строке у поля _pair вызывается getPublic() чтобы получить открытую пару ключа

затем она приводится к типу RSAPublicKey и у результата вызывается getModulus()
т.е. из этой пары берется только модуль (открытая экспонента зашита клиент, ее передавать не надо)

потом вызывается метод scrambleModulus, чтобы преобразовать этот модуль (тип BigInt) в скремблированный массив байт

и наконец этот массив присваивается полю  scrambledModulus 
PM MAIL ICQ   Вверх
Exai1e
Дата 24.4.2010, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 3
Всего: 30



мне кажется от ТСа требуют что то подобного рода:
пример:
Цитата

Этот метод в коде приведенным на Java, считывает файл и диска и шифрует его используя алгоритм VasyPupkin в дальнейшем шифрованные данные записываются в файл/передаются в сокет/в буфер. Как реализовать подобное на языке C#.


GoldFinch, то есть более абстрактно, а не то что там вызывается метод А потом метод Б в итоге получается С


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
PashaPash
Дата 24.4.2010, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



LaiQ, аналог на C#:
Код

RSACryptoServiceProvider provider = .....
byte  [] modulus = provider.ExportParameters(false).Modulus;



--------------------
PM MAIL WWW   Вверх
LaiQ
Дата 24.4.2010, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 24.4.2010

Репутация: нет
Всего: нет



Спасибо всем огромное за помощь, вы мне очень помогли!

to GoldFinch ну криптография бывает не только в серверах игр))))
PM MAIL   Вверх
Настюshа
Дата 16.10.2010, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 9.10.2010

Репутация: -1
Всего: -1



Здравствуйте)
Мне надо разработать конвертер с помощью Windows Form...
При нажатии кнопки открывалась БД и происходила выборка данных в новую таблицу.
При нажатии 2ой кнопки формировался отчет (данные берется из новой таблицы)...
В C# я никогда не работала, и мне сложновато это сделать. smile 
PM MAIL   Вверх
Экскалупатор
Дата 16.10.2010, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



Настюshа, по правилам форума должен быть один вопрос на одну тему. в этой ты уже третья. а ты один и тот же вопрос запостила уже в нескольких темах. ты хочешь что бы тебе помогли сделать? тогда задавай нормальные конкретные ВНЯТНЫЕ вопросы. а если ты хочешь что бы за тебя сделали и тебе отдали готовую программу, то тебе в отдел фрилансеров надо обращаться. можешь мне в личку написать я скажу тебе цену и обсудим детали. и получишь свою программу. а на те вопросы что ты пишешь(и как ты их задаешь), в которых понятно что спрашивающий не понимает что он спрашивает, тебе ничего отвечать скорее всего не будут. в лучшем случае посоветуют почитать учебник. начать с основ.

Добавлено через 1 минуту и 29 секунд
и кстати, тема про преобразование, при чем тут вообще твоя программа?
PM MAIL ICQ   Вверх
Настюshа
Дата 16.10.2010, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 9.10.2010

Репутация: -1
Всего: -1



Экскалупатор я не прошу написать мне программу, а прошу помочь...Я не виновата, что здесь куча тем и я не могу найти себе подходящую...А там где я пишу мне говорят, что не здесь..Вместо того, чтоб критиковать, мог бы помочь или сказать в какой теме надо написать...
PM MAIL   Вверх
Экскалупатор
Дата 16.10.2010, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



))) создай СВОЮ тему и там задавай. только разберись плиз что ты хочешь. спрашивай более конкретно. а не "у меня есть кнопка, мне нужно получить отчет из базы".
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0983 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.