Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> StrToBin, Перевод текста в Binary формат для базы 
:(
    Опции темы
Anakin
Дата 15.7.2011, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Добрый вечер.
Есть небольшая проблемка.
Имеетса сервер MSSQL
также есть таблица в которой должны хранитса пароли  в md5, ячейка куда пишетса пароль на базе типа Binary 
На форме у меня стоит Кнопка и TEdit
В TEdit я в писываю пароль шифрую его спомощью модуля md5 и необходимо его передать на базу.
Но тут возникает вопрос, в базе таблица имеет свойство binary а пароль у меня типа String как мне перевести String в Binary чтобы передать туда зашифрованый пароль.
Погуглил и нашол такой код:
Но Дельфи у меня ругаетса на один параметр TBit
Код

function BitToChar(Ch: Char; Bit: TBit): Char;
begin
  Result:= IntToStr((Byte(Ch) shr (Bit - 1)) and 1)[1];
end;

function StringToBin(const s: string): string;
var
  p, q: Integer;
begin
  for p:= 1 to Length(s) do
    for q:= High(TBit) downto Low(TBit) do
      Result:= Result + BitToChar(s[p], q)
end;

Подскажите как исправить положение или может есть какойто другой способ передать зашифрованый пароль md5 на Базу в таблицу с типом поля binary
Зарание Благодарен.

з.ы. Вот код с которым я работаю

Код

procedure TfReg.btn_regClick(Sender: TObject);
begin
  modul.Module.db_sql.Close;
  modul.Module.db_sql.SQL.Clear;
  modul.Module.db_sql.SQL.Add('INSERT INTO user_auth(account,password,quiz1,quiz2,answer1,answer2) VALUES (:Prm0,:Prm1, :Prm2, :Prm3, :Prm4, :Prm5);');
  modul.Module.db_sql.ParamByName('Prm0').AsString:=edt_login.Text;
  modul.Module.db_sql.ParamByName('Prm1').Value:=(Вот тут надо перевести в Binary(md5(edt_pwd.Text)));
  modul.Module.db_sql.ParamByName('Prm2').AsString:=edt_quiz1.Text;
  modul.Module.db_sql.ParamByName('Prm3').AsString:=edt_quiz2.Text;
  modul.Module.db_sql.ParamByName('Prm4').AsString:=edt_answer1.Text;
  modul.Module.db_sql.ParamByName('Prm5').AsString:=edt_answer2.Text;
  modul.Module.db_sql.Execute();
end;

PM MAIL   Вверх
Dik0n
Дата 15.7.2011, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Anakin, попробуй это, из DRKB взял

Код

function HexToBin(Hexadecimal: string): string;
const
  BCD: array [0..15] of string =
    ('0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111',
    '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111');
var
  i: integer;
begin
  for i := Length(Hexadecimal) downto 1 do
    Result := BCD[StrToInt('$' + Hexadecimal[i])] + Result;
end;


Код

modul.Module.db_sql.ParamByName('Prm1').Value:= HexToBin(md5(edt_pwd.Text));


Это сообщение отредактировал(а) Dik0n - 15.7.2011, 22:08
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой
PM MAIL WWW   Вверх
Anakin
Дата 15.7.2011, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Неа этот вареант тоже не помог.
Вот лог ошибки на попытку внести данные этого типа.

Implicit conversion from data type varchar to binary is not allowed

Шас я пробую сделать ещё одну процедуру, посмотрю может она поможет.
Но в любом случае есть у кого ещё идеи ?
PM MAIL   Вверх
Snowy
Дата 15.7.2011, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Бинарные данные нужно грузить из стрима.
Создай TMemoryStream. Засунь туда текст. Сделай ParamByName('Prm1').LoadFromStream
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

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


 




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


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

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