хэширование

svetklim

Новичок
Пользователь
Фев 12, 2022
3
0
1
Добрый день.
Нужно захэшировать номера телефонов, использую
Python:
members_merge['MD5'] = hashlib.md5(repr(members_merge["PHONE"] + salt).encode('utf-8')).hexdigest()
почему все хэши получаются одинаковыми (телефоны все разные и при хэшировании их отдельно хэши разные)?

MEMBER_IDPHONEMD5
123​
+77721111111222bf4f596fdb4a76f7c9f268033f636
124​
+77721111112222bf4f596fdb4a76f7c9f268033f636
125​
+77721111113222bf4f596fdb4a76f7c9f268033f636
126​
+77721111114222bf4f596fdb4a76f7c9f268033f636
127​
+77721111115222bf4f596fdb4a76f7c9f268033f636
 
Последнее редактирование:

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
932
208
43
20
Москва
Попробовал так:
Python:
import hashlib

def _hash(phone, salt='123'):
    return hashlib.md5((phone + salt).encode('utf-8')).hexdigest()

phones = ['+77721111111',
          '+77721111112',
          '+77721111113',
          '+77721111114',
          '+77721111115']
for phone in phones:
    print(_hash(phone))

Все хэши разные:
Код:
4dde3ab263355145ade51be097b97479
3ff1626eea34b041f5ad41763327eac2
12bc974fa6cff5411b9400080db76d2d
e24bddbefb32515c118ed017f95ce604
6983beba796cbe12843add9630c495ab

Ты через что работаешь? pandas, numpy, что-то еще?
можно полностью кусок этого кода
 

svetklim

Новичок
Пользователь
Фев 12, 2022
3
0
1
да собственно код весь вот:
Python:
import hashlib
import pandas as pd
salt1 = '123456ASDF'
members_merge4 = pd.read_csv('phones2.csv',
                      dtype={"MEMBER_ID": str,
                             "PHONE": str})
members_merge4['MD5'] = hashlib.md5(repr(members_merge4['PHONE'] + salt1).encode('utf-8')).hexdigest()
members_merge4
работаю в Jupyter Notebook 6.1.4. Мне нужно именно добавить столбец с хэшем в таблицу
 
Последнее редактирование:

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Мне нужно именно добавить столбец с хэшем в таблицу
Вот так можно:
Python:
import hashlib
import pandas as pd


def _hash(phone, salt='123'):
    return hashlib.md5((phone + salt).encode('utf-8')).hexdigest()


salt1 = '123456ASDF'
members_merge4 = pd.read_csv('phones2.csv', dtype={"MEMBER_ID": str, "PHONE": str})

members_merge4['MD5'] = members_merge4['PHONE'].apply(lambda x: _hash(x, salt1))
members_merge4
 
  • Мне нравится
Реакции: Vershitel_sudeb

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
932
208
43
20
Москва
да собственно код весь вот:
Python:
import hashlib
import pandas as pd
salt1 = '123456ASDF'
members_merge4 = pd.read_csv('phones2.csv',
                      dtype={"MEMBER_ID": str,
                             "PHONE": str})
members_merge4['MD5'] = hashlib.md5(repr(members_merge4['PHONE'] + salt1).encode('utf-8')).hexdigest()
members_merge4
работаю в Jupyter Notebook 6.1.4. Мне нужно именно добавить столбец с хэшем в таблицу
Если посмотришь, то members_merge4['PHONE'] это массив, и если его например умножить на число, то получится тоже массив, но в твоем случае ты передаешь его в функцию, и по факту ты находишь хэш всего столбца.

Ну а решение уже дал stud_55
 

svetklim

Новичок
Пользователь
Фев 12, 2022
3
0
1
@stud_55, @Vershitel_sudeb
Благодарю за ответы и помощь!
 

Форум IT Специалистов