テンプレートを使用してmd5ハッシュアルゴリズムを構築する

したがって、これは奇妙なものかもしれません:

hashlib.md5((hashlib.md5(salt).hexdigest())+(hashlib.md5(plaintext).hexdigest())).hexdigest()

これがMyBBのハッシュアルゴリズムです。私のPythonプログラムでは、これは簡単に実装できます。ただし、ハッシュアルゴリズムが不明で、ユーザーがハッシュアルゴリズムを入力する必要がある場合、それを実装する方法がわかりません。

つまり、基本的には、ユーザーが入力したアルゴリズムで何かをハッシュしたいと思います。彼らのアルゴリズムが次の場合:

md5(salt + md5(password))

私はやってみたいです:

hashlib.md5(salt + hashlib.md5(password).hexdigest()).hexdigest()

助けて?

ああ、使用するモジュールはすべてネイティブである必要があります。Python2に事前に含まれています。

ベリアル

次に、Jinja2をパーサーとして使用できます

import hashlib
from jinja2.sandbox import SandboxedEnvironment

def md5(s):
    return hashlib.md5(s).hexdigest()

# Sandbox because the source is likely to be untrusted
env = SandboxedEnvironment()

# Parsing any formula, wrapped in {{ ... }}
template = env.from_string('{{md5(salt + md5(password))}}')

# Running it:
hash_ = template.render(md5=md5, salt='3Fd0@5l4x', password='secret')
# hash_ == u'10aaeb818dd269d75bf460469c6b90ab'

@nathancahillが正しく示唆しているように、これをさらに改善して、より多くのアルゴリズムを含めることができます。

import functools

def hexify(algorithm):
    func = getattr(hashlib, algorithm)
    @functools.wraps(func)
    def hex_func(s):
        return func(s).hexdigest()

    return hex_func

algorithms = dict((name, hexify(name)) for name in hashlib.algorithms)

template.render(salt='3Fd0@5l4x', password='secret', **algorithms)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

理論的には、MD5アルゴリズムを使用して何かを2 ^ 128回ハッシュします。

分類Dev

小さな文字列ハッシュの場合、MD5のような非推奨のアルゴリズムまたはSHA256のようなアルゴリズムのプレフィックスを使用する必要がありますか?

分類Dev

パスワードハッシュを使用したパスワードアルゴリズムの構築

分類Dev

httpリモートMD5ハッシュを使用する

分類Dev

MD5ハッシュアルゴリズムのステップ2および3

分類Dev

MD5ハッシュを使用してメールを比較する方法

分類Dev

Javaでさまざまなハッシュアルゴリズム(MD5、SHA1、SHA256など)を提供するライブラリ?

分類Dev

MD5ハッシュ関数の特別なアプリケーションから電子メールアドレスを回復します

分類Dev

ヒープを再帰的に構築するためのトップダウンアルゴリズム

分類Dev

HTMLテンプレートを使用してShinyアプリを構築する

分類Dev

実行中のプロセスのリストを取得し、MD5アルゴリズムを介してそれらを実行する方法をPowershell

分類Dev

perlを使用してハッシュテーブルを構築する方法

分類Dev

MD5ディレクトリ内のすべてのファイルをハッシュする

分類Dev

文字列トークンの登録としてmd5ハッシュを使用しても安全ですか?

分類Dev

JavaでOIDを使用してハッシュアルゴリズム名を取得する方法

分類Dev

プレフィックス式を表すツリーを構築するアルゴリズム

分類Dev

配列とC ++文字列を使用したハッシュアルゴリズムの実装-セグメンテーション違反(コアダンプ)

分類Dev

C ++テンプレートを使用して戦略/アルゴリズムを切り替える

分類Dev

grepを使用してmd5ハッシュを照合する

分類Dev

md5ハッシュ(ソルト+値)を作成します

分類Dev

codenameoneでSHA1Digestアルゴリズムを使用してカスタムキーでデータをハッシュする方法

分類Dev

カウントソートアルゴリズムでハッシュテーブル/辞書を使用できないのはなぜですか?

分類Dev

ハッシュテーブルを使用した単語検索に使用するアルゴリズムは何ですか?

分類Dev

複合キーを使用したCassandraハッシュアルゴリズム

分類Dev

オブジェクトをハッシュとして使用するJavaScriptアルゴリズムの複雑さを理解する

分類Dev

Google AppsScriptを使用してリアルタイムダッシュボードを構築する

分類Dev

リストを使用して辞書/ハッシュを構築する

分類Dev

RspecRailsはアップロードされたファイルを比較しますmd5ハッシュ

分類Dev

ニューラルネットワークはどのように遺伝的アルゴリズムとバックプロパゲーションを使用してゲームをプレイしますか?

Related 関連記事

  1. 1

    理論的には、MD5アルゴリズムを使用して何かを2 ^ 128回ハッシュします。

  2. 2

    小さな文字列ハッシュの場合、MD5のような非推奨のアルゴリズムまたはSHA256のようなアルゴリズムのプレフィックスを使用する必要がありますか?

  3. 3

    パスワードハッシュを使用したパスワードアルゴリズムの構築

  4. 4

    httpリモートMD5ハッシュを使用する

  5. 5

    MD5ハッシュアルゴリズムのステップ2および3

  6. 6

    MD5ハッシュを使用してメールを比較する方法

  7. 7

    Javaでさまざまなハッシュアルゴリズム(MD5、SHA1、SHA256など)を提供するライブラリ?

  8. 8

    MD5ハッシュ関数の特別なアプリケーションから電子メールアドレスを回復します

  9. 9

    ヒープを再帰的に構築するためのトップダウンアルゴリズム

  10. 10

    HTMLテンプレートを使用してShinyアプリを構築する

  11. 11

    実行中のプロセスのリストを取得し、MD5アルゴリズムを介してそれらを実行する方法をPowershell

  12. 12

    perlを使用してハッシュテーブルを構築する方法

  13. 13

    MD5ディレクトリ内のすべてのファイルをハッシュする

  14. 14

    文字列トークンの登録としてmd5ハッシュを使用しても安全ですか?

  15. 15

    JavaでOIDを使用してハッシュアルゴリズム名を取得する方法

  16. 16

    プレフィックス式を表すツリーを構築するアルゴリズム

  17. 17

    配列とC ++文字列を使用したハッシュアルゴリズムの実装-セグメンテーション違反(コアダンプ)

  18. 18

    C ++テンプレートを使用して戦略/アルゴリズムを切り替える

  19. 19

    grepを使用してmd5ハッシュを照合する

  20. 20

    md5ハッシュ(ソルト+値)を作成します

  21. 21

    codenameoneでSHA1Digestアルゴリズムを使用してカスタムキーでデータをハッシュする方法

  22. 22

    カウントソートアルゴリズムでハッシュテーブル/辞書を使用できないのはなぜですか?

  23. 23

    ハッシュテーブルを使用した単語検索に使用するアルゴリズムは何ですか?

  24. 24

    複合キーを使用したCassandraハッシュアルゴリズム

  25. 25

    オブジェクトをハッシュとして使用するJavaScriptアルゴリズムの複雑さを理解する

  26. 26

    Google AppsScriptを使用してリアルタイムダッシュボードを構築する

  27. 27

    リストを使用して辞書/ハッシュを構築する

  28. 28

    RspecRailsはアップロードされたファイルを比較しますmd5ハッシュ

  29. 29

    ニューラルネットワークはどのように遺伝的アルゴリズムとバックプロパゲーションを使用してゲームをプレイしますか?

ホットタグ

アーカイブ