Шифрование с открытым ключом MD5 (python) - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь зашифровать свои данные, используя асимметричное шифрование.Я выбрал MD5 в качестве алгоритма.PS: я знаю о коллизиях MD5.

Я слежу за этим блогом , чтобы зашифровать и расшифровать мои данные.Это использует SHA256.Я могу успешно выполнить код с SHA1, SHA512, но не с MD5.

Всякий раз, когда я меняю алгоритм на MD5, он говорит:

cryptography.exceptions.UnsupportedAlgorithm: This combination of padding and hash algorithm is not supported by this backend.

Какой отступ следует использовать для шифрования данных с помощью MD5?

Мой код: -

# ########## Encrypting and decrypting ##########
message = b'encrypt me!'
encrypted = public_key.encrypt(
    message,
    padding.OAEP(
        mgf=padding.MGF1(algorithm=hashes.MD5()),
        algorithm=hashes.MD5(),
        label=None
    )
)
original_message = private_key.decrypt(
    encrypted,
    padding.OAEP(
        mgf=padding.MGF1(algorithm=hashes.MD5()),
        algorithm=hashes.MD5(),
        label=None
    )
)

1 Ответ

0 голосов
/ 11 марта 2019

На самом деле, MD5 - это (старый) алгоритм хеширования, это не алгоритм шифрования. Хеш используется для получения своего рода «контрольной суммы» для данного текста (или массива байтов данных). Эта «контрольная сумма» как фиксированная длина, независимо от размера хешируемого текста.

В криптографии вы обычно можете использовать хеш-функцию для получения закрытого (симметричного) ключа от ключевой фразы или вы можете зашифровать хеш с помощью закрытого ключа: это цифровая подпись.

...