micro-utils/src/cryptpw.c

36 lines
610 B
C
Raw Normal View History

2024-07-01 10:23:00 +00:00
#include <stdio.h>
2024-07-31 10:58:31 +00:00
#include <stdlib.h>
#include <unistd.h>
static char *gen_salt(void) {
srand(getpid());
static char salt[15];
char abc[] = "asdfghjklzxcvbnmqwertyuiop1234567890";
size_t i = 0;
for (; i < sizeof(salt); i++)
salt[i] = abc[rand() % sizeof(abc)];
salt[i] = '\0';
return salt;
}
2024-07-01 10:23:00 +00:00
int main(int argc, char **argv) {
if (argc < 2) {
2024-07-03 14:22:50 +00:00
puts("cryptpw: missing operand\ncryptpw [password] [own salt]");
2024-07-01 10:23:00 +00:00
return 0;
}
2024-07-31 10:58:31 +00:00
char *salt_ptr = gen_salt();
2024-07-01 10:23:00 +00:00
if (argc > 2)
2024-07-31 10:58:31 +00:00
salt_ptr = argv[2];
2024-07-01 10:23:00 +00:00
2024-07-31 10:58:31 +00:00
char *cpass = crypt(argv[1], salt_ptr);
2024-07-01 10:23:00 +00:00
if (cpass == NULL)
return 1;
puts(cpass);
return 0;
}