MA
Мы "системщину" преподавали на Perl, т.к. вроде-бы и высокоуровнево и не нужно думать про память, а с другой стороны все сисколлы как в C и всё рядом :)
Size: a a a
MA
AK
AK
(
(
RK
timingsafe_bcmp(hash, goodhash, strlen(goodhash))
возвращается ненулевое значение файл compat/bcrypt/bcrypt.c
221-222 строкаSC
RK
bcrypt_sha256$$2b$12$vMblrveY2XngIC1P7jkk7OQgYRn7In0wFRA6Dr2fwr1C88FCbI6rW
RK
return bcrypt.verify(
password, string.sub(user['password'], string.len('bcrypt_sha256$') + 1)
)
RK
MA
timingsafe_bcmp(hash, goodhash, strlen(goodhash))
возвращается ненулевое значение файл compat/bcrypt/bcrypt.c
221-222 строкаtarantool> bcrypt.digest('12345')
---
- $2b$04$wto3284CiVDgRneb1Y1sAOMVBeNeGyjjrH8cVsu/zHiEkSx6rh3dO
...
tarantool> bcrypt.verify('12345', '$2b$04$wto3284CiVDgRneb1Y1sAOMVBeNeGyjjrH8cVsu/zHiEkSx6rh3dO')
---
- true
...
tarantool> bcrypt.verify('12345', '$2b$12$vMblrveY2XngIC1P7jkk7OQgYRn7In0wFRA6Dr2fwr1C88FCbI6rW')
---
- false
...
RK
MA
$ python -c 'import bcrypt; print(bcrypt.hashpw("password", bcrypt.gensalt(log_rounds=10)))'
$2a$10$vWFRZgbOx6RKOKYxCTtyWuMJM60E90Vdm/.0nj.X/o3dYUxvQ/2Dm
tarantool> bcrypt.verify('password', '$2a$10$vWFRZgbOx6RKOKYxCTtyWuMJM60E90Vdm/.0nj.X/o3dYUxvQ/2Dm')
---
- true
...
SC
SC
RK
SC
RK
SC
$ cat test.lua
local bcrypt = require( "bcrypt" )
local sha = require( "sha512" )
local log_rounds = 12
local digest = bcrypt.digest( sha.sha256('12345'), log_rounds )
print(digest)
print(bcrypt.verify(sha.sha256('12345'), '$2b$12$vMblrveY2XngIC1P7jkk7OQgYRn7In0wFRA6Dr2fwr1C88FCbI6rW'))
$ lua ./test.lua
$2b$12$EW2Q4yFUq4Dn5YbMNKV9q.kpxGByVlAAW7JMywn7jbvSRJYqgls.m
true
RK