#include <unistd.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char **argv)
{
	char *salt = "{ssha512}04$................$";
	char key[64];
	int n;
	int saltlen;

	if (argc > 1)
		salt = argv[1];

	saltlen = strlen(salt);

	printf("%s\n", crypt("", salt));

	for (n = 0; n < 100000; n++)
	{
		char *crypt_out;

		sprintf(key, "%d", n);
		crypt_out = crypt(key, salt);
		if (crypt_out && strlen(crypt_out) > saltlen + 3)
		if (strstr(&crypt_out[saltlen], "..."))
			printf("%d %s\n", n, crypt_out);
	}
	return 0;
}

