Allereerst moet ik even zeggen dat ik niet precies weet in welke categorie ik dit moet posten, maar ik hoop het met wat programmeerwerk te kunnen oplossen. Ik zal het probleem toelichten met wat java code. Stel ik heb een String en wil deze op een simpele manier encrypten.
Als ik nu de String "koekje" versleutel krijg ik met deze methode "kekjeo". Wil ik nu "kekjeo" terugzetten naar het origineel dan doe ik het omgekeerde:
Dit levert keurig weer koekje op...MAAR...er zijn meerdere manieren om "kekjeo" te krijgen na encryptie..zoals "okekje" en "kkeoje"....hoe vind ik deze 2 string terug? want als ik "kekjeo" decrypt met de decrypt methode dan vind ik nooit die andere 2. Iemand een idee hoe dit probleem op te lossen valt.
En een brute force met alle mogelijke string permutaties is geen optie, omdat de string in m'n echte geval langer is (14 chars)
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
| private void encrypt(String s) { char ac[] = s.toCharArray(); for(int j = 0; j < ac.length - 1; j++) if(ac[j] > ac[j + 1]) { char c = ac[j]; ac[j] = ac[j + 1]; ac[j + 1] = c; } return new String(ac); } |
Als ik nu de String "koekje" versleutel krijg ik met deze methode "kekjeo". Wil ik nu "kekjeo" terugzetten naar het origineel dan doe ik het omgekeerde:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| private void decrypt(String s) { char ac[] = s.toCharArray(); for(int j = ac.length - 1; j > 1; j--) { if(ac[j - 1] < ac[j]) { char c = ac[j - 1]; ac[j - 1] = ac[j]; ac[j] = c; } } return new String(ac); } |
Dit levert keurig weer koekje op...MAAR...er zijn meerdere manieren om "kekjeo" te krijgen na encryptie..zoals "okekje" en "kkeoje"....hoe vind ik deze 2 string terug? want als ik "kekjeo" decrypt met de decrypt methode dan vind ik nooit die andere 2. Iemand een idee hoe dit probleem op te lossen valt.
En een brute force met alle mogelijke string permutaties is geen optie, omdat de string in m'n echte geval langer is (14 chars)
[ Voor 54% gewijzigd door Verwijderd op 25-02-2006 21:43 ]