BG Development


  Reply to this topicStart new topicStart Poll

> Заигравка с hex
dedal
Публикувано на: 05-05-2019, 09:47
Quote Post



Име: Григор Колев
Група: Потребител
Ранг: Посетител

Мнения: 100
Регистриран на: 17.11.10



Трябва да генерирам индивидуално id за транзакци.
Взимам последното в hex обръщам го в int и добавям 1
и то изглежда нещо от сорта:

CODE

ID = '2020202020202020202020202020202021'
NEW_ID = hex(int(ID, 16)+1)[2:]


И тук идва проблема, работи до 7Е
или дължината на всеки бит е от 20 до 7Е
при достигане на 7Е последния бит трябва да стане 20 а предходния 21
И не се сещам за умен начин.

Това мнение е било редактирано от dedal на 05-05-2019, 09:48
PMEmail Poster
Top
kierenski
Публикувано на: 05-05-2019, 09:58
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 345
Регистриран на: 10.01.16



ID е по-голямо от разрядноста на машината.
Използвай по-малки числа или си направи собствена функция за пресмятане.
PMEmail Poster
Top
liolioasd
Публикувано на: 06-05-2019, 18:58
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 47
Регистриран на: 25.12.10



CODE

import uuid

if __name__ == '__main__':
   print(uuid.uuid4().hex)
PMEmail Poster
Top
ici
Публикувано на: 06-05-2019, 20:39
Quote Post


Group Icon
Име: Ивайло Илчев ики
Група: VIP
Ранг: Почетен член

Мнения: 16214
Регистриран на: 06.06.04



Не е много хубаво идентификатор на транзакция, сесия и пр. да е предвидим. Някакъв хеш + зеленчуци ...


--------------------
Reading undefined locations provides undefined data.
PMEmail PosterUsers Website
Top
gat3way
Публикувано на: 07-05-2019, 00:08
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3862
Регистриран на: 22.06.12



Ако изискването е да са криптоградски сигурни, не просто уникални, хеш функцията на практика не добавя някаква сигурност сама по себе си, освен ако не е подбран някакъв алгоритъм който да е едновременно изчислително интензивен и нарочно да е дизайннат така че да не намазваш много от паралелизация, редовният номер е да подбират такива които ползват повече памет, за да сметнат хеш стойността, там bcrypt, scrypt, но дори това само по себе си не дава никаква гаранция, важното е това което хешираш да има висока ентропия. Например timestamp сам по себе си да хешираш е глупаво, относително лесно ще се брутфорсне ако ще да е там в микросекунди, наносекунди и прочее. Timestamp плюс някаква секретна стойност е относително ОК, ако изхождаш от презюмпцията че секретната стойност няма да се узнае, ако се узнае, тогава проблемът става същият. Та значи трябва си хубав източник на случайни числа, ама наистина хубав, почти всички генератори на псевдослучайни числа не са добра идея например.
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0