Code: Select all
from passlib.utils.pbkdf2 import pbkdf1
key = 'Jr9DW9ksMRv1Lc796mrwv145fXC3L5VcpmKE5VfCuvbrpZGfYwXMpwo9sGkJ54zHse4G7zftpjkhqHHY60O7aQPj4M2ekKMSw094PmXRkN4ftTmDFlYMPmwK8QvhJ20H'.encode('utf-8', 'ignore')
salt = 'Jr9DW9ksMRv1Lc796mrwv145fXC3L5VcpmKE5VfCuvbrpZGfYwXMpwo9sGkJ54zHse4G7zftpjkhqHHY60O7aQPj4M2ekKMSw094PmXRkN4ftTmDFlYMPmwK8QvhJ20H'.encode('utf-8', 'ignore')
bk = pbkdf1(key, salt, 100, keylen=16, hash='sha1')
bk.hex()produces
Code: Select all
'8e2e1d5a5e3a4a1c7388f6b8d7779d7b'How would i do this in quickbms?
openssl code
Code: Select all
#include <string.h>
#include <stdlib.h>
#include <openssl/sha.h>
void pbkdf1(const char *password, const char *salt, long iter, unsigned char dk[SHA_DIGEST_LENGTH])
{
    size_t pwlen = strlen(password);
    size_t dlen = pwlen + 8;
    unsigned char *buf;
    if (dlen > SHA_DIGEST_LENGTH)
        buf = malloc(dlen);
    else
        buf = malloc(SHA_DIGEST_LENGTH);
    memcpy(buf, password, pwlen);
    strncpy((char *)buf + pwlen, salt, 8);
    while (iter-- > 0)
    {
        SHA1(buf, dlen, buf);
        dlen = SHA_DIGEST_LENGTH;
    }
    memcpy(dk, buf, SHA_DIGEST_LENGTH);
    free(buf);
}
or
https://github.com/RobertCNelson/bertos ... f/pbkdf1.c