与えられた文字列に対してmd5を作成する方法はありますが、md5には英数字のみを指定した文字のみを含める必要があります。また、md5の長さはjavaを使用してコーダーで定義する必要があります。
例:
この質問のテキストがmd5を作成するための文字列であり、「//:\#$%^&*!()_- =+|」があるとします。このテストの開始時と終了時のこれらの文字は、md5のようなものである必要があります。
期待される出力:
sdki544k54353453(英数字のみの16の長さの文字列)
与えられた文字列のmd5を作成する方法はありますか
最初の問題:文字列をバイトに変換するために使用するエンコーディングを定義する必要があります。MD5は、テキストではなくバイナリデータで機能します。したがって、文字列をバイトに変換してからハッシュする必要があります。これにより、ハッシュとして16バイトが返されます。
md5には、英数字のみを指定した文字のみを含める必要があります
さて、それは16進数で、または少しスペースを節約したい場合はbase32で最も簡単に実行できます。
また、md5の長さは、Javaを使用してコーダーで定義する必要があります
バイナリハッシュデータのサイズは固定されています-MD5は常に128ビット(16バイト)を生成します。長さを短くしたい場合は、データを切り捨てる必要がある可能性があります(これによりハッシュの効果が低下します)。もちろん、希望の長さが必要以上に長い場合は、パッドを入れるだけです。
16バイトは、16進数で32文字として、またはbase32で26文字としてエンコードされます。Base64に必要なのは22文字だけですが、それには少なくとも2文字の英数字以外の文字が必要です。(数字+ az + AZは62文字を提供します。base64には64文字が必要です。通常はプラス文字が追加されますが、長さが事前にわかっている場合は省略できます。)
要件をより詳細に説明できれば、さらに支援できる可能性がありますが、基本的にMD5は固定サイズのハッシュです。