What hash to use
Derek (freebsd lists)
482254ac at razorfever.net
Thu Aug 23 10:28:11 UTC 2018
On 2018-08-23 05:16 AM, Olivier wrote:
> I am using a tools that hashes the passwords in the form of
> $2b$10$OQBll77HJqnOR.zqK2jx8ukE6m68Azc7nrsgRdcT6bVfERRmzFV4.
>
> What magic tool can I use in freeBSD to do the same hashing?
>
Try this (cdemo.c):
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int main(void)
{
struct crypt_data buf1;
char *hash;
/*
* Generate a crypt for storage, using salt as the
algorithm selection
* and parameters.
*/
hash = crypt_r("Initial example password.",
"$2b$10$22bytesofbase64charactersfromdevurandom", &buf1);
if (hash == NULL) {
printf("crypt_r (hash) failed.\n");
return (3);
}
printf("crypt_r (hash) result: %s\n", hash);
return (0);
}
Then:
cc -lcrypt -o cdemo cdemo.c
./cdemo
This is okay for a one-off.
You might wire stdin to read the salt, or for bonus points make
your own salt generator.
Additionally, it's likely not a good idea to read the password
from the command-line (argv+argc). A file descriptor (e.g.
stdin) of some kind would be better, as it will show up in shell
history and the process table.
Some languages, e.g. python, php, etc will have a library to do
this for you as well.
Derek
More information about the freebsd-questions
mailing list