- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
//как создать сильный пароль в php
$hp = md5(md5(md5(strong($_POST['hp'])))); // типо наш пароль
//а что же такое strong??
###############################
######## Фильтрация ###########
###############################
function strong($msg){
$msg = trim($msg);
$msg = htmlspecialchars($msg);
$msg = mysql_escape_string($msg);
return $msg;
}
inkanus-gray 05.07.2016 20:46 # 0
guestinho 05.07.2016 22:29 # 0
3.14159265 07.07.2016 15:30 # 0
Все о ней говорят, но никто никогда не видел такой хеш.
3_14dar 07.07.2016 16:11 # 0
habrophag 07.07.2016 17:03 # +1
Если предположить, что есть некие два хеша A и B, такие, что начиная с какого-то применения md5 будет получаться только один из них, к тому же md5(A) = B и md5(B) = A, то, во-первых, будет соблюдена "почти" неотличимость, о которой сказано выше, а во-вторых, нет неподвижных точек.
Вообще, вероятность, что неподвижная точка есть, составляет (1-1/N)^(N) ≈ 1 - 1/e ≈ 63%. Где N - мощность множества, в которое отображает md5, т.е. N = 2^128
Вероятность, что существует хотя бы пара хешей A и B, у которых md5(A) = md5(B) составляет (1-N!/N^N) ≈ 100%
3.14159265 07.07.2016 17:08 # 0
Как только речь заходит о MD5, всегда найдётся тот кто с умным видом скопирует эти 63% с очередной стековерфловочки. А хеша я пока не видел.
PS> http://math.stackexchange.com/questions/1799767/63-chance-of-event-happening-over-repeated-attempts
habrophag 08.07.2016 10:12 # 0
Но согласитесь, что хоть никто сейчас не сможет предъявить объект "Человек, доживший до 10.07.2016", у нас с Вами, вероятнее всего, будут сомнения по поводу справедливости утверждения "Никто не доживет до 10.07.2016". Так и с утверждением о неподвижной точке, а тем более про циклы.
3_14dar 13.07.2016 19:03 # +1
3.14159265 07.07.2016 17:18 # 0
Согласен. Но известны ли примеры таких циклов?
A=md5(md5(A))
A=md5(md5(md5(A)))
habrophag 08.07.2016 10:13 # 0
Но известно ли, что таких циклов не существует или, хотя бы, что ни один человек на планете не знает таких циклов?
guesto 05.07.2016 21:05 # +1
md5 же не секьюрен
bormand 05.07.2016 21:14 # +7
Автор знал об этом и подстраховался - заэкранировал опасные символы.
guesto 05.07.2016 21:22 # +1
мало-ли что
CHayT 05.07.2016 21:38 # 0
guest 05.07.2016 21:27 # 0
bormand 05.07.2016 21:30 # +2
guesto 05.07.2016 21:35 # +1
bormand 05.07.2016 21:39 # 0
Steve_Brown 06.07.2016 12:10 # 0
Soul_re@ver 06.07.2016 12:13 # +1
gost 06.07.2016 12:41 # 0
Fike 07.07.2016 09:28 # 0
Fike 07.07.2016 09:28 # 0
guestinho 05.07.2016 22:29 # 0
guest 05.07.2016 22:41 # 0
guesto 05.07.2016 22:44 # +1
guest 05.07.2016 22:53 # 0
научились подбирать строку с заданным хешом?
я это и спрашиваю
dxd 05.07.2016 22:59 # +1
Lander 06.07.2016 12:55 # +2
3.14159265 07.07.2016 16:17 # +2
С SHA-1 такая же история, "ломали", "срезали"
А по-прежнему и гиты, и торренты и sslи его используют.
И если "80 бит", то речь явно идёт о 160 битном SHA-1.
inkanus-gray 07.07.2016 16:29 # 0
3.14159265 07.07.2016 16:37 # +2
Только вот я не слышал чтоб его в стандартные либы промышленных языков ложили.
А в целом длину любой хеш-функции нужно делить пополам.
То есть 128 бит MD5 - это 2^64 переборов.
160 бит SHA-1 - это 2^80.
224 бита SHA-2 - это 2^112.
Итд
3_14dar 07.07.2016 16:46 # 0
3.14159265 07.07.2016 16:55 # +1
3_14dar 07.07.2016 17:03 # 0
inkanus-gray 07.07.2016 16:48 # 0
3.14159265 07.07.2016 17:02 # 0
Но это касается цифровых подписей, когда мы можем сгенерить HASH(S)=HASH(S')
3_14dar 07.07.2016 17:03 # +1
guest 05.07.2016 22:56 # +1
gost 06.07.2016 07:13 # 0
Soul_re@ver 06.07.2016 09:37 # +6
FTFY
3_14dar 07.07.2016 16:11 # +2
guestinho 07.07.2016 16:49 # +1
3_14dar 07.07.2016 17:04 # +2
guestinho 07.07.2016 17:35 # +1
Fike 07.07.2016 09:27 # 0