D
Hallo und danke! Das nehme ich auf meine Kappe.
Ich versuche gerade den gesamten Algorithmus in C zu implementieren, leider mangelt es an Grundlagen (String, char Array, Zeiger, etc.)
Hier mal die Fehlermeldung:
SHA1DLL.c: In function `Java_main_HashGenerator_SHA1Hash':
SHA1DLL.c:463: warning: passing arg 2 of `SHAUpdate' discards qualifiers from pointer target type
SHA1DLL.c: In function `SHA1InterHash':
SHA1DLL.c:497: warning: return from incompatible pointer type
SHA1DLL.c:497: warning: function returns address of local variable
SHA1DLL.c: In function `Java_main_HashGenerator_SHA1main':
SHA1DLL.c:529: error: invalid initializer
SHA1DLL.c:536: error: incompatible types in assignment
und hier mal mein Code:
#define MAX_LENGTH 8
char anfangBuchstabe = 'a'; // = 'a'
char endBuchstabe = 'z'; // = 'z'
char cg[MAX_LENGTH] = {0}; // Current Guess
char currentChar = {0};
int index;
JNIEXPORT jstring JNICALL Java_main_HashGenerator_SHA1main(JNIEnv * env, jclass myclass, jstring inString)
{
const char *nativeString = (*env)->GetStringUTFChars(env, inString, 0);
cg[0] = anfangBuchstabe;
char attempt[1] = SHA1InterHash(cg);
while (1) {
if (strcmp(attempt, nativeString) == 0) {
printf("Password Found: %s", cg);
return (*env)->NewStringUTF(env, cg);
}
//increment();
attempt = SHA1Hash(cg);
}
}
char **SHA1InterHash(char tempString[])
{
SHA_CTX sha;
unsigned int len = strlen (tempString);
SHAInit(&sha);
SHAUpdate(&sha, tempString, len);
SHAFinal(digest, &sha);
char p[41] = {0};
int i,j;
for (i = j = 0; i < 20; ++i,j+=2)
{
//if ((i % 4) == 0) printf(" ");
//printf("%02x", digest[i]);
sprintf(p+j, "%02x", digest[i]);
}
return p;
}
Einmal kann ich das 'p' nicht so einfach zurückgeben, jedenfalls nicht mit der Funktionsdefinition und dann kann ich nicht einfach diese Zuweisung durchführen "attempt = SHA1Hash(cg);"
DerProgrammierer