2011-02-12 19 views
0

私が働いているシステムが数値コードから始まるハッシュコードをどのように作成するのかを理解しようとしています。私はこれらのペア "small_number、big_number"のいくつかを集めていますが、システムがbig_numberを得るためにsmall_numberをどのようにエンコードするかを理解することはできません。システムはbig_numberからsmall_numberを取得できるので、デコードが可能です。逆ハッシング関数

数字は、これらのようになります。

 
197 >> 29337857947107767585 

1078 >> 84080031635590040762 

1083 >> 32373003898332638476 

1409 >> 79402294967209014727 

1498 >> 25254493910542918727 

2945 >> 85687067382221703925 

2946 >> 88767616208189692328 

私はまったく見当もつかない。あなたはあまりにもいくつかの読書を指摘できますか?

は、システムが機能を逆にすることができた場合、関数は全くハッシュ関数ではなく、cipherあなた

+1

プロセスを簡単に元に戻すことができれば、使用されているハッシュアルゴリズムではありません。あなたはアルゴリズムに関して何かを唱えていますか? – driis

+0

システムに20桁を超える数値コードを入力するとどうなりますか? – CodesInChaos

答えて

1

ありがとうございます。

出力が常に20桁の数字になっているように見えます。数字以外の入力、または20桁を超える文字列でテストしましたか?

どちらの場合でも、システムがよく知られている暗号化アルゴリズム(私の推測はAESまたはDES)を使用している可能性が高いため、関数を推測することは不可能です。

システムが直接入力を受けていないのに他の情報を追加していないと、適切なアルゴリズムとキーを持っていてもそれを認識できないことがあります。

+0

AESには少なくとも128ビットのブロックサイズがあり、20ビットの数字ストリングには66.4ビットしかないため、AESにすることはできません。 – CodesInChaos

+0

これは、いつでも切り捨てることができます(私はSHAを使用し、アプリケーションのパスワードを生成するために10個のbase64文字に切り捨てました) – Vanwaril