#python #vector #hash #sha256
#python #вектор #хэш #sha256
Вопрос:
Я задавался вопросом, существует ли функция Python f, которая одновременно вычисляет отдельный номер sha256 вектора. Например, если у вас есть вектор A=[a b], функция f дает f(A) = [sha256(a) sha256 (b)] (a иb — строки или числа).
Я не могу заставить его работать с hashlib. Кроме того, пакет ‘openssl’ из R имеет такую функцию ‘sha256’. Существует ли эквивалентность?
Я использую Spyder IDE.
Спасибо.
Ответ №1:
A = [a,b]
Asha = list(map(sha256, A))
или
def sha256List(arr):
return list(map(sha256, arr))
Asha = sha256List(A)
Редактировать
Если вам нужен список со hexdigest
значениями, вы можете использовать
def sha256HexDigestList(arr):
return list(map(lambda x: sha256(x).hexdigest(), arr))
Asha_digest = sha256HexDigestList(A)
Комментарии:
1. Фантастика! Большое вам спасибо! Можете ли вы также получить способ распечатать полный список хэшей? Команда «print(Asha [1].hexdigest())» выводит число в координате 1, но есть ли более систематический способ распечатать все хэши?
2. @user27636 смотрите редактирование, вы можете использовать список строк дайджеста любым удобным для вас способом, возможно, использовать
' '.join(sha256HexDigestList(A))
3. Да, это работает очень хорошо, спасибо вам большое, большое! Просто обратите внимание, что для ввода необходим массив строк (если 1 строка, то массив из 1 элемента).
4. Здравствуйте, после некоторых исследований это не похоже на правильную «векторизацию», поскольку время, затрачиваемое на вычисление хэшей, в целом равно времени, затрачиваемому на вычисление по одному (с использованием цикла).
5. @user27636 где в вопросе слово векторизация, а Python является однопоточным из-за GIL