BG Development


  Reply to this topicStart new topicStart Poll

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



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

Мнения: 110
Регистриран на: 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



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

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



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



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

Мнения: 52
Регистриран на: 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
Ранг: Почетен член

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



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


--------------------
Remember kids, suicide is never the answer
PMEmail PosterUsers Website
Top
gat3way
Публикувано на: 07-05-2019, 00:08
Quote Post



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

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



Ако изискването е да са криптоградски сигурни, не просто уникални, хеш функцията на практика не добавя някаква сигурност сама по себе си, освен ако не е подбран някакъв алгоритъм който да е едновременно изчислително интензивен и нарочно да е дизайннат така че да не намазваш много от паралелизация, редовният номер е да подбират такива които ползват повече памет, за да сметнат хеш стойността, там bcrypt, scrypt, но дори това само по себе си не дава никаква гаранция, важното е това което хешираш да има висока ентропия. Например timestamp сам по себе си да хешираш е глупаво, относително лесно ще се брутфорсне ако ще да е там в микросекунди, наносекунди и прочее. Timestamp плюс някаква секретна стойност е относително ОК, ако изхождаш от презюмпцията че секретната стойност няма да се узнае, ако се узнае, тогава проблемът става същият. Та значи трябва си хубав източник на случайни числа, ама наистина хубав, почти всички генератори на псевдослучайни числа не са добра идея например.
PMEmail Poster
Top
dedal
Публикувано на: 04-06-2019, 17:32
Quote Post



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

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



QUOTE (gat3way @ 07-05-2019, 00:08)
Ако изискването е да са криптоградски сигурни, не просто уникални, хеш функцията на практика не добавя някаква сигурност сама по себе си, освен ако не е подбран някакъв алгоритъм който да е едновременно изчислително интензивен и нарочно да е дизайннат така че да не намазваш много от паралелизация, редовният номер е да подбират такива които ползват повече памет, за да сметнат хеш стойността, там bcrypt, scrypt, но дори това само по себе си не дава никаква гаранция, важното е това което хешираш да има висока ентропия. Например timestamp сам по себе си да хешираш е глупаво, относително лесно ще се брутфорсне ако ще да е там в микросекунди, наносекунди и прочее. Timestamp плюс някаква секретна стойност е относително ОК, ако изхождаш от презюмпцията че секретната стойност няма да се узнае, ако се узнае, тогава проблемът става същият. Та значи трябва си хубав източник на случайни числа, ама наистина хубав, почти всички генератори на псевдослучайни числа не са добра идея например.


Реално е пореден номер на финансова транзакция ( ID в информационната система ). Ключовете са отделно 24 бита с регистрация преди всяка транзакция. Просто протокола казва, че така трябва да е (а то разликата между протокола и терориста , че с терориста можеш да преговаряш). Иначе го докарах по най баламския начин. Добавян 1 и правя проверка +1 ако превишава 7е правя го 20 и добавям +1 на предходния.

Това мнение е било редактирано от dedal на 04-06-2019, 17:34
PMEmail Poster
Top
thrawn
Публикувано на: 04-06-2019, 18:55
Quote Post



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

Мнения: 2668
Регистриран на: 17.01.17



Това което описваш е просто бройна система с основа 5f. Направи си броячът в десетична бройна система и го представяй в такава с онсова 5f когато това е необходимо. По обратната логика конвертирай представянето в системата с основа 5f до десетична, ако се налага да обработваш входящи транзакции в тоя формат.
PMEmail Poster
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


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