Преобразование строки по алгоритму md5

Синтаксис
 
encode_string(< результат >, < строка >[,< ключ >])

< результат > – результирующая строка типа BYTE;

< строка > – преобразуемая строка типа CHAR;

< ключ > – ключ преобразования типа CHAR.

Описание

Одностороннее преобразование строки по алгоритму md5 с заданным ключом.

Если параметр < ключ > не задан, используется ключ преобразования по умолчанию.

Функция позволяет создавать пользователей БД непосредственно в теле процедуры.

Возвращаемое значение
  1. Результат преобразования длиной 16 байт возвращается в переменной < результат >.

  2. Если длина этой переменной меньше 16 байт, то заносятся только первые байты результата, если больше – оставшиеся байты заполняются нулями.

Пример
create or replace table upwds(uname char(20), pwd byte(16));

create or replace procedure add_user(in uname char(20); in pwd char(20))
for debug
declare
  var encstr byte(16); //
code
  encode_string(encstr, pwd); //
  execute "insert into upwds values(?,?);" using uname, encstr; //
end;

create or replace procedure check_user(in uname char(20); in pwd char(20)) result int
for debug
declare
  var encstr byte(16); //
code
  encode_string(encstr, pwd); //
  execute "select * from upwds where uname= ? and pwd = ?;" using uname, encstr; //
  if errcode() = 2 then
    return 0; // not correct
  else
    return 1; //
  endif
end;