-1

パスワードを解読する手順 a の作成方法 逆 ASCII コードの複数の場所の文字と ASCII との連結

パスワードの例: 123 に暗号化: 49491005015351

次のように暗号化されます。

v := v || ASCII(substr(u_pass,i,1)) * instr(u_pass,substr(u_pass,i,1))
4

1 に答える 1

0

逆の問題は、暗号化された各文字の長さが異なる可能性があることです。以下のアルゴリズムは、文字を与える最短のシーケンスを探すことに注意してください。これが正しくない場合もあります。そのような場合、このコードは文字列の残りを復号化できません。

v := <encrypted password>;

i := 1;    -- Character
pos := 1;  -- Position in v
while (pos < length(v)) loop
  j=1;
  found = false;
  while not found  and j + pos <= length(v) loop
    if mod(to_number(substr(v, pos, j), i) = 0 then  
      -- Possible match
      anum := to_number(substr(v, pos, j)/ j;  -- ascii value of the next character
      alen := length(trim(to_char(anum)));
      if substr(v, pos + j, alen) = anum then
        -- Match found!
        u_pass := u_pass || chr(anum);
        found := true;
        pos := pos + j + alen;
        i := i + 1;
      end if;
    end if;
  end loop;
end loop;
于 2012-11-05T14:35:11.250 に答える