Я в настоящее время шифрования вещи на несколько слоев. На индивидуальном уровне файла, я использую OpenSSL:
Код:
$ Эхо Foo | OpenSSL АЕС-256-CBC -salt -a
введите АЕС-256-CBC пароль шифрования:
Верификация - введите AES-256-CBC пароль шифрования:
U2FsdGVkX19lqSi + Z8UoUmfnUqX7QJf + vQwwlyQ0tL4 =
введите АЕС-256-CBC пароль шифрования:
Верификация - введите AES-256-CBC пароль шифрования:
U2FsdGVkX19lqSi + Z8UoUmfnUqX7QJf + vQwwlyQ0tL4 =
Проблема, которую я вижу с этим, то, что это очевидно зашифрованы. Если удалить "-a" параметр OpenSSL и запустить вывод через шестнадцатеричный, мы можем видеть это:
Код:
$ Эхо Foo | OpenSSL АЕС-256-CBC -salt | XXD
введите АЕС-256-CBC пароль шифрования:
Верификация - введите AES-256-CBC пароль шифрования:
0000000: 5361 6c74 6564 5f5f 237d 34c9 d818 28d6 соленая __ #} 4 ... (.
0000010: 37f6 DB75 cb87 bb5f e689 fd06 9d54 bf8b 7..u ..._..... Т ..
введите АЕС-256-CBC пароль шифрования:
Верификация - введите AES-256-CBC пароль шифрования:
0000000: 5361 6c74 6564 5f5f 237d 34c9 d818 28d6 соленая __ #} 4 ... (.
0000010: 37f6 DB75 cb87 bb5f e689 fd06 9d54 bf8b 7..u ..._..... Т ..
Еще одна проблема с этим состоит в том, что, пытаясь расшифровать, мы получаем ошибку, когда пароль неверен, но хороший результат, то пароль совпадает:
Код:
$ Эхо 'U2FsdGVkX19lqSi + Z8UoUmfnUqX7QJf + vQwwlyQ0tL4 =' | OpenSSL АЕС-256-CBC -salt -a -d
введите АЕС-256-CBC дешифрования пароль:
плохо расшифровывать
140357412120232: ошибка: 06065064: цифровой конверт подпрограммы: EVP_DecryptFinal_ex: плохо расшифровывать: evp_enc.c: 539:
$ Эхо 'U2FsdGVkX19lqSi + Z8UoUmfnUqX7QJf + vQwwlyQ0tL4 =' | OpenSSL АЕС-256-CBC -salt -a -d
введите АЕС-256-CBC дешифрования пароль:
Foo
введите АЕС-256-CBC дешифрования пароль:
плохо расшифровывать
140357412120232: ошибка: 06065064: цифровой конверт подпрограммы: EVP_DecryptFinal_ex: плохо расшифровывать: evp_enc.c: 539:
$ Эхо 'U2FsdGVkX19lqSi + Z8UoUmfnUqX7QJf + vQwwlyQ0tL4 =' | OpenSSL АЕС-256-CBC -salt -a -d
введите АЕС-256-CBC дешифрования пароль:
Foo
Я хотел бы использовать алгоритм шифрования, который произвел случайный выглядящий выход без какого-либо префикса, как OpenSSL, "Salted__", При попытке расшифровать, он всегда должен преуспеть, но возвращать фиктивные данные о неправильном пароле. Я бы предпочел не связываться с "Salted__" Приставка по себе или, не дай бог ролл мой собственный крипто. Может кто-нибудь дать мне несколько советов? Поиск по DuckDuckGo для "случайное ищет шифрование" дает кучу результатов о генерации случайных чисел.