Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Banana-Coding.com - Java Knuddels Emulator. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

1

Sonntag, 29. April 2012, 12:25

Eigene Passwortverschlüsselung

Aus Copyrightgründen kann man die Verschlüsselung von Knuddels ja auch nicht nehmen.
Die MD5 Verschlüsselung war aus dem Inet (ich speicher bei mir die Passwörter gesalted im MD5 Format, deswegen mit in der Klasse drinne). Das Hashing ist an Knuddels angelehnt, kann aber natürlich frei genutzt werden.

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package eu.knuddelz.net.Security;

/**
 *
 * @author KAPS
 */
public class Password {
    	public static String MD5(String md5) {
        	try {
            	java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
            	byte[] array = md.digest(md5.getBytes());
            	StringBuilder sb = new StringBuilder();
            	for (int i = 0; i < array.length; ++i) {
                	sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1,3));
            	}
            	return sb.toString();
        	} catch (java.security.NoSuchAlgorithmException e) {	}
        	return null;
    	}

    	public static String hash(String md5, String salt) {
        	Integer worth = 0;
        	for(int i=0; i<md5.length();++i) {
            	char c = md5.charAt(i);
            	switch(c%5) {
                	case 0:
                    	worth = worth ^ (3<<(i%16));
                    	break;
                	case 1:
                    	worth += (int)Math.pow(c, c);
                    	break;
                	case 2:
                    	worth = worth | c<<(i%8);
                    	break;
                	case 3: 
                    	worth = worth*c;
                    	break;
                	default:
                    	worth++;
            	}
        	}
        	for(int i=0; i<salt.length();++i) {
            	char c = salt.charAt(i);
            	switch(c%5) {
                	case 0:
                    	worth = worth ^ (3<<(i%16));
                    	break;
                	case 1:
                    	worth += (int)Math.pow(c, c);
                    	break;
                	case 2:
                    	worth = worth | c<<(i%8);
                    	break;
                	case 3: 
                    	worth = worth*c;
                    	break;
                	default:
                    	worth++;
            	}
        	}
        	worth = worth%100000;
        	return worth.toString();
    	}
}



Der Salt hier kann genutzt werden um den dynamischen Passwortkey zu nutzen.

2

Sonntag, 29. April 2012, 12:33

- Deleted -

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Blizzard« (19. Februar 2013, 12:35)


3

Sonntag, 29. April 2012, 12:40

Ja es geht alles einwandfrei. Sicher ist das getestet.
Ist identisch mit der PHP/MYSQL MD5.