public class TrillianPasswordDecoder {
/**
* Fonction de décodage du mot de passe
*
* @param string le mot de passe encodé
*/
private void decodePassword
(String password
) {
// Pour plus de simplicité on converti le mot de passe en une suite d'entiers hexa
if (password.length() > 32) {
System.
err.
println("Password too long, only 32 character max, this will be truncated.");
password = password.substring(0, 31);
}
if (password.length() % 2 == 1) {
System.
err.
println("Number of character in password should be odd, this will be truncated.");
}
// Pour plus de simplicité on converti le mot de passe en une suite d'entiers hexa
System.
out.
print("Encoded password : {");
int[] encodedPassword = new int[password.length() / 2];
for (int iCharacter = 0; iCharacter < encodedPassword.length; iCharacter++) {
encodedPassword
[iCharacter
] = Integer.
parseInt(password.
substring(2 * iCharacter,
2 * iCharacter
+ 2),
16);
if (iCharacter > 0) {
}
System.
out.
print("0x" + Integer.
toHexString(encodedPassword
[iCharacter
]));
}
// Intération sur chaque caractère encodé
for (int iEncoderCharacter = 0; iEncoderCharacter < encodedPassword.length; iEncoderCharacter++) {
// Non trouvé par défaut
char decoderCharacter = '\0';
// Recherche du caractère encodé dans la ligne courrante de la table de décodage
for (int iRosetaCharacter = 0; iRosetaCharacter < ROSETA_STONE[iEncoderCharacter].length; iRosetaCharacter++) {
if (ROSETA_STONE[iEncoderCharacter][iRosetaCharacter] == encodedPassword[iEncoderCharacter]) {
decoderCharacter = CHARSET.charAt(iRosetaCharacter);
}
}
// Ajout du caractère décodé si tout c'est bien passé, sinon, on ajoute un {?} pour que
// puisse être répérée l'erreur.
if (decoderCharacter == '\0') {
System.
err.
println("Unable to decode this 0x" + Integer.
toHexString(encodedPassword
[iEncoderCharacter
]));
System.
err.
println("Replacing it with the pattern {?}");
decodedPassword += "{?}";
}
else {
decodedPassword += decoderCharacter;
}
//
}
// C'est fini, affichage du résultat
System.
out.
println("Decoded password : " + decodedPassword
);
}
// Lancement de l'utilitaire
public static void main
(String[] args
) {
if (args.length == 0) {
System.
err.
println("Syntax : trillianPasswordDecoder ENCODED_PASSWORD");
}
new TrillianPasswordDecoder().decodePassword(args[0]);
}
// Les caractères reconnus par trillian
private final String CHARSET
= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ~`!@#$%^&*()_-+={[}]|\\:;"'<,>.?/¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ";
// La table de conversion pour le décodage.
private final int[][] ROSETA_STONE = {
{ 0x92, 0x91, 0x90, 0x97, 0x96, 0x95, 0x94, 0x9b, 0x9a, 0x99, 0x98, 0x9f, 0x9e, 0x9d, 0x9c, 0x83, 0x82, 0x81, 0x80, 0x87, 0x86, 0x85, 0x84, 0x8b, 0x8a, 0x89, 0xb2, 0xb1, 0xb0, 0xb7, 0xb6, 0xb5, 0xb4, 0xbb, 0xba, 0xb9, 0xb8, 0xbf, 0xbe, 0xbd,
0xbc, 0xa3, 0xa2, 0xa1, 0xa0, 0xa7, 0xa6, 0xa5, 0xa4, 0xab, 0xaa, 0xa9, 0xc3, 0xc2, 0xc1, 0xc0, 0xc7, 0xc6, 0xc5, 0xc4, 0xcb, 0xca, 0xd3, 0x8d, 0x93, 0xd2, 0xb3, 0xd0, 0xd7, 0xd6, 0xad, 0xd5, 0xd9, 0xdb, 0xda, 0xac, 0xde, 0xd8, 0xce,
0x88, 0xa8, 0x8e, 0xae, 0x8f, 0xaf, 0xc9, 0xc8, 0xd1, 0xd4, 0xcf, 0xdf, 0xcd, 0xdd, 0xcc, 0xdc, 0x52, 0x51, 0x50, 0x57, 0x56, 0x55, 0x54, 0x5b, 0x5a, 0x59, 0x58, 0x5f, 0x5d, 0x5c, 0x43, 0x42, 0x41, 0x40, 0x47, 0x46, 0x45, 0x44, 0x4b,
0x4a, 0x49, 0x48, 0x4f, 0x4e, 0x4d, 0x4c, 0x33, 0x32, 0x31, 0x30, 0x37, 0x36, 0x35, 0x34, 0x3b, 0x3a, 0x39, 0x38, 0x3f, 0x3e, 0x3d, 0x3c, 0x23, 0x22, 0x21, 0x20, 0x27, 0x26, 0x25, 0x24, 0x2b, 0x2a, 0x29, 0x28, 0x2f, 0x2e, 0x2d, 0x2c,
0x13, 0x12, 0x11, 0x10, 0x17, 0x16, 0x15, 0x14, 0x1b, 0x1a, 0x19, 0x18, 0x1f, 0x1e, 0x1d, 0x1c, 0x03, 0x02, 0x01, 0x00, 0x07, 0x06, 0x05, 0x04, 0x0b, 0x0a, 0x09, 0x08, 0x0f, 0x0e, 0x0d, 0x0c },
{ 0x47, 0x44, 0x45, 0x42, 0x43, 0x40, 0x41, 0x4e, 0x4f, 0x4c, 0x4d, 0x4a, 0x4b, 0x48, 0x49, 0x56, 0x57, 0x54, 0x55, 0x52, 0x53, 0x50, 0x51, 0x5e, 0x5f, 0x5c, 0x67, 0x64, 0x65, 0x62, 0x63, 0x60, 0x61, 0x6e, 0x6f, 0x6c, 0x6d, 0x6a, 0x6b, 0x68,
0x69, 0x76, 0x77, 0x74, 0x75, 0x72, 0x73, 0x70, 0x71, 0x7e, 0x7f, 0x7c, 0x16, 0x17, 0x14, 0x15, 0x12, 0x13, 0x10, 0x11, 0x1e, 0x1f, 0x06, 0x58, 0x46, 0x07, 0x66, 0x05, 0x02, 0x03, 0x78, 0x00, 0x0c, 0x0e, 0x0f, 0x79, 0x0b, 0x0d, 0x1b,
0x5d, 0x7d, 0x5b, 0x7b, 0x5a, 0x7a, 0x1c, 0x1d, 0x04, 0x01, 0x1a, 0x0a, 0x18, 0x08, 0x19, 0x09, 0x87, 0x84, 0x85, 0x82, 0x83, 0x80, 0x81, 0x8e, 0x8f, 0x8c, 0x8d, 0x8a, 0x88, 0x89, 0x96, 0x97, 0x94, 0x95, 0x92, 0x93, 0x90, 0x91, 0x9e,
0x9f, 0x9c, 0x9d, 0x9a, 0x9b, 0x98, 0x99, 0xe6, 0xe7, 0xe4, 0xe5, 0xe2, 0xe3, 0xe0, 0xe1, 0xee, 0xef, 0xec, 0xed, 0xea, 0xeb, 0xe8, 0xe9, 0xf6, 0xf7, 0xf4, 0xf5, 0xf2, 0xf3, 0xf0, 0xf1, 0xfe, 0xff, 0xfc, 0xfd, 0xfa, 0xfb, 0xf8, 0xf9,
0xc6, 0xc7, 0xc4, 0xc5, 0xc2, 0xc3, 0xc0, 0xc1, 0xce, 0xcf, 0xcc, 0xcd, 0xca, 0xcb, 0xc8, 0xc9, 0xd6, 0xd7, 0xd4, 0xd5, 0xd2, 0xd3, 0xd0, 0xd1, 0xde, 0xdf, 0xdc, 0xdd, 0xda, 0xdb, 0xd8, 0xd9 },
{ 0xe0, 0xe3, 0xe2, 0xe5, 0xe4, 0xe7, 0xe6, 0xe9, 0xe8, 0xeb, 0xea, 0xed, 0xec, 0xef, 0xee, 0xf1, 0xf0, 0xf3, 0xf2, 0xf5, 0xf4, 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xc0, 0xc3, 0xc2, 0xc5, 0xc4, 0xc7, 0xc6, 0xc9, 0xc8, 0xcb, 0xca, 0xcd, 0xcc, 0xcf,
0xce, 0xd1, 0xd0, 0xd3, 0xd2, 0xd5, 0xd4, 0xd7, 0xd6, 0xd9, 0xd8, 0xdb, 0xb1, 0xb0, 0xb3, 0xb2, 0xb5, 0xb4, 0xb7, 0xb6, 0xb9, 0xb8, 0xa1, 0xff, 0xe1, 0xa0, 0xc1, 0xa2, 0xa5, 0xa4, 0xdf, 0xa7, 0xab, 0xa9, 0xa8, 0xde, 0xac, 0xaa, 0xbc,
0xfa, 0xda, 0xfc, 0xdc, 0xfd, 0xdd, 0xbb, 0xba, 0xa3, 0xa6, 0xbd, 0xad, 0xbf, 0xaf, 0xbe, 0xae, 0x20, 0x23, 0x22, 0x25, 0x24, 0x27, 0x26, 0x29, 0x28, 0x2b, 0x2a, 0x2d, 0x2f, 0x2e, 0x31, 0x30, 0x33, 0x32, 0x35, 0x34, 0x37, 0x36, 0x39,
0x38, 0x3b, 0x3a, 0x3d, 0x3c, 0x3f, 0x3e, 0x41, 0x40, 0x43, 0x42, 0x45, 0x44, 0x47, 0x46, 0x49, 0x48, 0x4b, 0x4a, 0x4d, 0x4c, 0x4f, 0x4e, 0x51, 0x50, 0x53, 0x52, 0x55, 0x54, 0x57, 0x56, 0x59, 0x58, 0x5b, 0x5a, 0x5d, 0x5c, 0x5f, 0x5e,
0x61, 0x60, 0x63, 0x62, 0x65, 0x64, 0x67, 0x66, 0x69, 0x68, 0x6b, 0x6a, 0x6d, 0x6c, 0x6f, 0x6e, 0x71, 0x70, 0x73, 0x72, 0x75, 0x74, 0x77, 0x76, 0x79, 0x78, 0x7b, 0x7a, 0x7d, 0x7c, 0x7f, 0x7e },
{ 0xa5, 0xa6, 0xa7, 0xa0, 0xa1, 0xa2, 0xa3, 0xac, 0xad, 0xae, 0xaf, 0xa8, 0xa9, 0xaa, 0xab, 0xb4, 0xb5, 0xb6, 0xb7, 0xb0, 0xb1, 0xb2, 0xb3, 0xbc, 0xbd, 0xbe, 0x85, 0x86, 0x87, 0x80, 0x81, 0x82, 0x83, 0x8c, 0x8d, 0x8e, 0x8f, 0x88, 0x89, 0x8a,
0x8b, 0x94, 0x95, 0x96, 0x97, 0x90, 0x91, 0x92, 0x93, 0x9c, 0x9d, 0x9e, 0xf4, 0xf5, 0xf6, 0xf7, 0xf0, 0xf1, 0xf2, 0xf3, 0xfc, 0xfd, 0xe4, 0xba, 0xa4, 0xe5, 0x84, 0xe7, 0xe0, 0xe1, 0x9a, 0xe2, 0xee, 0xec, 0xed, 0x9b, 0xe9, 0xef, 0xf9,
0xbf, 0x9f, 0xb9, 0x99, 0xb8, 0x98, 0xfe, 0xff, 0xe6, 0xe3, 0xf8, 0xe8, 0xfa, 0xea, 0xfb, 0xeb, 0x65, 0x66, 0x67, 0x60, 0x61, 0x62, 0x63, 0x6c, 0x6d, 0x6e, 0x6f, 0x68, 0x6a, 0x6b, 0x74, 0x75, 0x76, 0x77, 0x70, 0x71, 0x72, 0x73, 0x7c,
0x7d, 0x7e, 0x7f, 0x78, 0x79, 0x7a, 0x7b, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x14, 0x15, 0x16, 0x17, 0x10, 0x11, 0x12, 0x13, 0x1c, 0x1d, 0x1e, 0x1f, 0x18, 0x19, 0x1a, 0x1b,
0x24, 0x25, 0x26, 0x27, 0x20, 0x21, 0x22, 0x23, 0x2c, 0x2d, 0x2e, 0x2f, 0x28, 0x29, 0x2a, 0x2b, 0x34, 0x35, 0x36, 0x37, 0x30, 0x31, 0x32, 0x33, 0x3c, 0x3d, 0x3e, 0x3f, 0x38, 0x39, 0x3a, 0x3b },
{ 0x58, 0x5b, 0x5a, 0x5d, 0x5c, 0x5f, 0x5e, 0x51, 0x50, 0x53, 0x52, 0x55, 0x54, 0x57, 0x56, 0x49, 0x48, 0x4b, 0x4a, 0x4d, 0x4c, 0x4f, 0x4e, 0x41, 0x40, 0x43, 0x78, 0x7b, 0x7a, 0x7d, 0x7c, 0x7f, 0x7e, 0x71, 0x70, 0x73, 0x72, 0x75, 0x74, 0x77,
0x76, 0x69, 0x68, 0x6b, 0x6a, 0x6d, 0x6c, 0x6f, 0x6e, 0x61, 0x60, 0x63, 0x09, 0x08, 0x0b, 0x0a, 0x0d, 0x0c, 0x0f, 0x0e, 0x01, 0x00, 0x19, 0x47, 0x59, 0x18, 0x79, 0x1a, 0x1d, 0x1c, 0x67, 0x1f, 0x13, 0x11, 0x10, 0x66, 0x14, 0x12, 0x04,
0x42, 0x62, 0x44, 0x64, 0x45, 0x65, 0x03, 0x02, 0x1b, 0x1e, 0x05, 0x15, 0x07, 0x17, 0x06, 0x16, 0x98, 0x9b, 0x9a, 0x9d, 0x9c, 0x9f, 0x9e, 0x91, 0x90, 0x93, 0x92, 0x95, 0x97, 0x96, 0x89, 0x88, 0x8b, 0x8a, 0x8d, 0x8c, 0x8f, 0x8e, 0x81,
0x80, 0x83, 0x82, 0x85, 0x84, 0x87, 0x86, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0xf1, 0xf0, 0xf3, 0xf2, 0xf5, 0xf4, 0xf7, 0xf6, 0xe9, 0xe8, 0xeb, 0xea, 0xed, 0xec, 0xef, 0xee, 0xe1, 0xe0, 0xe3, 0xe2, 0xe5, 0xe4, 0xe7, 0xe6,
0xd9, 0xd8, 0xdb, 0xda, 0xdd, 0xdc, 0xdf, 0xde, 0xd1, 0xd0, 0xd3, 0xd2, 0xd5, 0xd4, 0xd7, 0xd6, 0xc9, 0xc8, 0xcb, 0xca, 0xcd, 0xcc, 0xcf, 0xce, 0xc1, 0xc0, 0xc3, 0xc2, 0xc5, 0xc4, 0xc7, 0xc6 },
{ 0xe7, 0xe4, 0xe5, 0xe2, 0xe3, 0xe0, 0xe1, 0xee, 0xef, 0xec, 0xed, 0xea, 0xeb, 0xe8, 0xe9, 0xf6, 0xf7, 0xf4, 0xf5, 0xf2, 0xf3, 0xf0, 0xf1, 0xfe, 0xff, 0xfc, 0xc7, 0xc4, 0xc5, 0xc2, 0xc3, 0xc0, 0xc1, 0xce, 0xcf, 0xcc, 0xcd, 0xca, 0xcb, 0xc8,
0xc9, 0xd6, 0xd7, 0xd4, 0xd5, 0xd2, 0xd3, 0xd0, 0xd1, 0xde, 0xdf, 0xdc, 0xb6, 0xb7, 0xb4, 0xb5, 0xb2, 0xb3, 0xb0, 0xb1, 0xbe, 0xbf, 0xa6, 0xf8, 0xe6, 0xa7, 0xc6, 0xa5, 0xa2, 0xa3, 0xd8, 0xa0, 0xac, 0xae, 0xaf, 0xd9, 0xab, 0xad, 0xbb,
0xfd, 0xdd, 0xfb, 0xdb, 0xfa, 0xda, 0xbc, 0xbd, 0xa4, 0xa1, 0xba, 0xaa, 0xb8, 0xa8, 0xb9, 0xa9, 0x27, 0x24, 0x25, 0x22, 0x23, 0x20, 0x21, 0x2e, 0x2f, 0x2c, 0x2d, 0x2a, 0x28, 0x29, 0x36, 0x37, 0x34, 0x35, 0x32, 0x33, 0x30, 0x31, 0x3e,
0x3f, 0x3c, 0x3d, 0x3a, 0x3b, 0x38, 0x39, 0x46, 0x47, 0x44, 0x45, 0x42, 0x43, 0x40, 0x41, 0x4e, 0x4f, 0x4c, 0x4d, 0x4a, 0x4b, 0x48, 0x49, 0x56, 0x57, 0x54, 0x55, 0x52, 0x53, 0x50, 0x51, 0x5e, 0x5f, 0x5c, 0x5d, 0x5a, 0x5b, 0x58, 0x59,
0x66, 0x67, 0x64, 0x65, 0x62, 0x63, 0x60, 0x61, 0x6e, 0x6f, 0x6c, 0x6d, 0x6a, 0x6b, 0x68, 0x69, 0x76, 0x77, 0x74, 0x75, 0x72, 0x73, 0x70, 0x71, 0x7e, 0x7f, 0x7c, 0x7d, 0x7a, 0x7b, 0x78, 0x79 },
{ 0xba, 0xb9, 0xb8, 0xbf, 0xbe, 0xbd, 0xbc, 0xb3, 0xb2, 0xb1, 0xb0, 0xb7, 0xb6, 0xb5, 0xb4, 0xab, 0xaa, 0xa9, 0xa8, 0xaf, 0xae, 0xad, 0xac, 0xa3, 0xa2, 0xa1, 0x9a, 0x99, 0x98, 0x9f, 0x9e, 0x9d, 0x9c, 0x93, 0x92, 0x91, 0x90, 0x97, 0x96, 0x95,
0x94, 0x8b, 0x8a, 0x89, 0x88, 0x8f, 0x8e, 0x8d, 0x8c, 0x83, 0x82, 0x81, 0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec, 0xe3, 0xe2, 0xfb, 0xa5, 0xbb, 0xfa, 0x9b, 0xf8, 0xff, 0xfe, 0x85, 0xfd, 0xf1, 0xf3, 0xf2, 0x84, 0xf6, 0xf0, 0xe6,
0xa0, 0x80, 0xa6, 0x86, 0xa7, 0x87, 0xe1, 0xe0, 0xf9, 0xfc, 0xe7, 0xf7, 0xe5, 0xf5, 0xe4, 0xf4, 0x7a, 0x79, 0x78, 0x7f, 0x7e, 0x7d, 0x7c, 0x73, 0x72, 0x71, 0x70, 0x77, 0x75, 0x74, 0x6b, 0x6a, 0x69, 0x68, 0x6f, 0x6e, 0x6d, 0x6c, 0x63,
0x62, 0x61, 0x60, 0x67, 0x66, 0x65, 0x64, 0x1b, 0x1a, 0x19, 0x18, 0x1f, 0x1e, 0x1d, 0x1c, 0x13, 0x12, 0x11, 0x10, 0x17, 0x16, 0x15, 0x14, 0x0b, 0x0a, 0x09, 0x08, 0x0f, 0x0e, 0x0d, 0x0c, 0x03, 0x02, 0x01, 0x00, 0x07, 0x06, 0x05, 0x04,
0x3b, 0x3a, 0x39, 0x38, 0x3f, 0x3e, 0x3d, 0x3c, 0x33, 0x32, 0x31, 0x30, 0x37, 0x36, 0x35, 0x34, 0x2b, 0x2a, 0x29, 0x28, 0x2f, 0x2e, 0x2d, 0x2c, 0x23, 0x22, 0x21, 0x20, 0x27, 0x26, 0x25, 0x24 },
{ 0xf3, 0xf0, 0xf1, 0xf6, 0xf7, 0xf4, 0xf5, 0xfa, 0xfb, 0xf8, 0xf9, 0xfe, 0xff, 0xfc, 0xfd, 0xe2, 0xe3, 0xe0, 0xe1, 0xe6, 0xe7, 0xe4, 0xe5, 0xea, 0xeb, 0xe8, 0xd3, 0xd0, 0xd1, 0xd6, 0xd7, 0xd4, 0xd5, 0xda, 0xdb, 0xd8, 0xd9, 0xde, 0xdf, 0xdc,
0xdd, 0xc2, 0xc3, 0xc0, 0xc1, 0xc6, 0xc7, 0xc4, 0xc5, 0xca, 0xcb, 0xc8, 0xa2, 0xa3, 0xa0, 0xa1, 0xa6, 0xa7, 0xa4, 0xa5, 0xaa, 0xab, 0xb2, 0xec, 0xf2, 0xb3, 0xd2, 0xb1, 0xb6, 0xb7, 0xcc, 0xb4, 0xb8, 0xba, 0xbb, 0xcd, 0xbf, 0xb9, 0xaf,
0xe9, 0xc9, 0xef, 0xcf, 0xee, 0xce, 0xa8, 0xa9, 0xb0, 0xb5, 0xae, 0xbe, 0xac, 0xbc, 0xad, 0xbd, 0x33, 0x30, 0x31, 0x36, 0x37, 0x34, 0x35, 0x3a, 0x3b, 0x38, 0x39, 0x3e, 0x3c, 0x3d, 0x22, 0x23, 0x20, 0x21, 0x26, 0x27, 0x24, 0x25, 0x2a,
0x2b, 0x28, 0x29, 0x2e, 0x2f, 0x2c, 0x2d, 0x52, 0x53, 0x50, 0x51, 0x56, 0x57, 0x54, 0x55, 0x5a, 0x5b, 0x58, 0x59, 0x5e, 0x5f, 0x5c, 0x5d, 0x42, 0x43, 0x40, 0x41, 0x46, 0x47, 0x44, 0x45, 0x4a, 0x4b, 0x48, 0x49, 0x4e, 0x4f, 0x4c, 0x4d,
0x72, 0x73, 0x70, 0x71, 0x76, 0x77, 0x74, 0x75, 0x7a, 0x7b, 0x78, 0x79, 0x7e, 0x7f, 0x7c, 0x7d, 0x62, 0x63, 0x60, 0x61, 0x66, 0x67, 0x64, 0x65, 0x6a, 0x6b, 0x68, 0x69, 0x6e, 0x6f, 0x6c, 0x6d },
{ 0x10, 0x13, 0x12, 0x15, 0x14, 0x17, 0x16, 0x19, 0x18, 0x1b, 0x1a, 0x1d, 0x1c, 0x1f, 0x1e, 0x01, 0x00, 0x03, 0x02, 0x05, 0x04, 0x07, 0x06, 0x09, 0x08, 0x0b, 0x30, 0x33, 0x32, 0x35, 0x34, 0x37, 0x36, 0x39, 0x38, 0x3b, 0x3a, 0x3d, 0x3c, 0x3f,
0x3e, 0x21, 0x20, 0x23, 0x22, 0x25, 0x24, 0x27, 0x26, 0x29, 0x28, 0x2b, 0x41, 0x40, 0x43, 0x42, 0x45, 0x44, 0x47, 0x46, 0x49, 0x48, 0x51, 0x0f, 0x11, 0x50, 0x31, 0x52, 0x55, 0x54, 0x2f, 0x57, 0x5b, 0x59, 0x58, 0x2e, 0x5c, 0x5a, 0x4c,
0x0a, 0x2a, 0x0c, 0x2c, 0x0d, 0x2d, 0x4b, 0x4a, 0x53, 0x56, 0x4d, 0x5d, 0x4f, 0x5f, 0x4e, 0x5e, 0xd0, 0xd3, 0xd2, 0xd5, 0xd4, 0xd7, 0xd6, 0xd9, 0xd8, 0xdb, 0xda, 0xdd, 0xdf, 0xde, 0xc1, 0xc0, 0xc3, 0xc2, 0xc5, 0xc4, 0xc7, 0xc6, 0xc9,
0xc8, 0xcb, 0xca, 0xcd, 0xcc, 0xcf, 0xce, 0xb1, 0xb0, 0xb3, 0xb2, 0xb5, 0xb4, 0xb7, 0xb6, 0xb9, 0xb8, 0xbb, 0xba, 0xbd, 0xbc, 0xbf, 0xbe, 0xa1, 0xa0, 0xa3, 0xa2, 0xa5, 0xa4, 0xa7, 0xa6, 0xa9, 0xa8, 0xab, 0xaa, 0xad, 0xac, 0xaf, 0xae,
0x91, 0x90, 0x93, 0x92, 0x95, 0x94, 0x97, 0x96, 0x99, 0x98, 0x9b, 0x9a, 0x9d, 0x9c, 0x9f, 0x9e, 0x81, 0x80, 0x83, 0x82, 0x85, 0x84, 0x87, 0x86, 0x89, 0x88, 0x8b, 0x8a, 0x8d, 0x8c, 0x8f, 0x8e },
{ 0xc2, 0xc1, 0xc0, 0xc7, 0xc6, 0xc5, 0xc4, 0xcb, 0xca, 0xc9, 0xc8, 0xcf, 0xce, 0xcd, 0xcc, 0xd3, 0xd2, 0xd1, 0xd0, 0xd7, 0xd6, 0xd5, 0xd4, 0xdb, 0xda, 0xd9, 0xe2, 0xe1, 0xe0, 0xe7, 0xe6, 0xe5, 0xe4, 0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed,
0xec, 0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4, 0xfb, 0xfa, 0xf9, 0x93, 0x92, 0x91, 0x90, 0x97, 0x96, 0x95, 0x94, 0x9b, 0x9a, 0x83, 0xdd, 0xc3, 0x82, 0xe3, 0x80, 0x87, 0x86, 0xfd, 0x85, 0x89, 0x8b, 0x8a, 0xfc, 0x8e, 0x88, 0x9e,
0xd8, 0xf8, 0xde, 0xfe, 0xdf, 0xff, 0x99, 0x98, 0x81, 0x84, 0x9f, 0x8f, 0x9d, 0x8d, 0x9c, 0x8c, 0x02, 0x01, 0x00, 0x07, 0x06, 0x05, 0x04, 0x0b, 0x0a, 0x09, 0x08, 0x0f, 0x0d, 0x0c, 0x13, 0x12, 0x11, 0x10, 0x17, 0x16, 0x15, 0x14, 0x1b,
0x1a, 0x19, 0x18, 0x1f, 0x1e, 0x1d, 0x1c, 0x63, 0x62, 0x61, 0x60, 0x67, 0x66, 0x65, 0x64, 0x6b, 0x6a, 0x69, 0x68, 0x6f, 0x6e, 0x6d, 0x6c, 0x73, 0x72, 0x71, 0x70, 0x77, 0x76, 0x75, 0x74, 0x7b, 0x7a, 0x79, 0x78, 0x7f, 0x7e, 0x7d, 0x7c,
0x43, 0x42, 0x41, 0x40, 0x47, 0x46, 0x45, 0x44, 0x4b, 0x4a, 0x49, 0x48, 0x4f, 0x4e, 0x4d, 0x4c, 0x53, 0x52, 0x51, 0x50, 0x57, 0x56, 0x55, 0x54, 0x5b, 0x5a, 0x59, 0x58, 0x5f, 0x5e, 0x5d, 0x5c },
{ 0xd8, 0xdb, 0xda, 0xdd, 0xdc, 0xdf, 0xde, 0xd1, 0xd0, 0xd3, 0xd2, 0xd5, 0xd4, 0xd7, 0xd6, 0xc9, 0xc8, 0xcb, 0xca, 0xcd, 0xcc, 0xcf, 0xce, 0xc1, 0xc0, 0xc3, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0xf1, 0xf0, 0xf3, 0xf2, 0xf5, 0xf4, 0xf7,
0xf6, 0xe9, 0xe8, 0xeb, 0xea, 0xed, 0xec, 0xef, 0xee, 0xe1, 0xe0, 0xe3, 0x89, 0x88, 0x8b, 0x8a, 0x8d, 0x8c, 0x8f, 0x8e, 0x81, 0x80, 0x99, 0xc7, 0xd9, 0x98, 0xf9, 0x9a, 0x9d, 0x9c, 0xe7, 0x9f, 0x93, 0x91, 0x90, 0xe6, 0x94, 0x92, 0x84,
0xc2, 0xe2, 0xc4, 0xe4, 0xc5, 0xe5, 0x83, 0x82, 0x9b, 0x9e, 0x85, 0x95, 0x87, 0x97, 0x86, 0x96, 0x18, 0x1b, 0x1a, 0x1d, 0x1c, 0x1f, 0x1e, 0x11, 0x10, 0x13, 0x12, 0x15, 0x17, 0x16, 0x09, 0x08, 0x0b, 0x0a, 0x0d, 0x0c, 0x0f, 0x0e, 0x01,
0x00, 0x03, 0x02, 0x05, 0x04, 0x07, 0x06, 0x79, 0x78, 0x7b, 0x7a, 0x7d, 0x7c, 0x7f, 0x7e, 0x71, 0x70, 0x73, 0x72, 0x75, 0x74, 0x77, 0x76, 0x69, 0x68, 0x6b, 0x6a, 0x6d, 0x6c, 0x6f, 0x6e, 0x61, 0x60, 0x63, 0x62, 0x65, 0x64, 0x67, 0x66,
0x59, 0x58, 0x5b, 0x5a, 0x5d, 0x5c, 0x5f, 0x5e, 0x51, 0x50, 0x53, 0x52, 0x55, 0x54, 0x57, 0x56, 0x49, 0x48, 0x4b, 0x4a, 0x4d, 0x4c, 0x4f, 0x4e, 0x41, 0x40, 0x43, 0x42, 0x45, 0x44, 0x47, 0x46 },
{ 0x87, 0x84, 0x85, 0x82, 0x83, 0x80, 0x81, 0x8e, 0x8f, 0x8c, 0x8d, 0x8a, 0x8b, 0x88, 0x89, 0x96, 0x97, 0x94, 0x95, 0x92, 0x93, 0x90, 0x91, 0x9e, 0x9f, 0x9c, 0xa7, 0xa4, 0xa5, 0xa2, 0xa3, 0xa0, 0xa1, 0xae, 0xaf, 0xac, 0xad, 0xaa, 0xab, 0xa8,
0xa9, 0xb6, 0xb7, 0xb4, 0xb5, 0xb2, 0xb3, 0xb0, 0xb1, 0xbe, 0xbf, 0xbc, 0xd6, 0xd7, 0xd4, 0xd5, 0xd2, 0xd3, 0xd0, 0xd1, 0xde, 0xdf, 0xc6, 0x98, 0x86, 0xc7, 0xa6, 0xc5, 0xc2, 0xc3, 0xb8, 0xc0, 0xcc, 0xce, 0xcf, 0xb9, 0xcb, 0xcd, 0xdb,
0x9d, 0xbd, 0x9b, 0xbb, 0x9a, 0xba, 0xdc, 0xdd, 0xc4, 0xc1, 0xda, 0xca, 0xd8, 0xc8, 0xd9, 0xc9, 0x47, 0x44, 0x45, 0x42, 0x43, 0x40, 0x41, 0x4e, 0x4f, 0x4c, 0x4d, 0x4a, 0x48, 0x49, 0x56, 0x57, 0x54, 0x55, 0x52, 0x53, 0x50, 0x51, 0x5e,
0x5f, 0x5c, 0x5d, 0x5a, 0x5b, 0x58, 0x59, 0x26, 0x27, 0x24, 0x25, 0x22, 0x23, 0x20, 0x21, 0x2e, 0x2f, 0x2c, 0x2d, 0x2a, 0x2b, 0x28, 0x29, 0x36, 0x37, 0x34, 0x35, 0x32, 0x33, 0x30, 0x31, 0x3e, 0x3f, 0x3c, 0x3d, 0x3a, 0x3b, 0x38, 0x39,
0x06, 0x07, 0x04, 0x05, 0x02, 0x03, 0x00, 0x01, 0x0e, 0x0f, 0x0c, 0x0d, 0x0a, 0x0b, 0x08, 0x09, 0x16, 0x17, 0x14, 0x15, 0x12, 0x13, 0x10, 0x11, 0x1e, 0x1f, 0x1c, 0x1d, 0x1a, 0x1b, 0x18, 0x19 },
{ 0x32, 0x31, 0x30, 0x37, 0x36, 0x35, 0x34, 0x3b, 0x3a, 0x39, 0x38, 0x3f, 0x3e, 0x3d, 0x3c, 0x23, 0x22, 0x21, 0x20, 0x27, 0x26, 0x25, 0x24, 0x2b, 0x2a, 0x29, 0x12, 0x11, 0x10, 0x17, 0x16, 0x15, 0x14, 0x1b, 0x1a, 0x19, 0x18, 0x1f, 0x1e, 0x1d,
0x1c, 0x03, 0x02, 0x01, 0x00, 0x07, 0x06, 0x05, 0x04, 0x0b, 0x0a, 0x09, 0x63, 0x62, 0x61, 0x60, 0x67, 0x66, 0x65, 0x64, 0x6b, 0x6a, 0x73, 0x2d, 0x33, 0x72, 0x13, 0x70, 0x77, 0x76, 0x0d, 0x75, 0x79, 0x7b, 0x7a, 0x0c, 0x7e, 0x78, 0x6e,
0x28, 0x08, 0x2e, 0x0e, 0x2f, 0x0f, 0x69, 0x68, 0x71, 0x74, 0x6f, 0x7f, 0x6d, 0x7d, 0x6c, 0x7c, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4, 0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfd, 0xfc, 0xe3, 0xe2, 0xe1, 0xe0, 0xe7, 0xe6, 0xe5, 0xe4, 0xeb,
0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec, 0x93, 0x92, 0x91, 0x90, 0x97, 0x96, 0x95, 0x94, 0x9b, 0x9a, 0x99, 0x98, 0x9f, 0x9e, 0x9d, 0x9c, 0x83, 0x82, 0x81, 0x80, 0x87, 0x86, 0x85, 0x84, 0x8b, 0x8a, 0x89, 0x88, 0x8f, 0x8e, 0x8d, 0x8c,
0xb3, 0xb2, 0xb1, 0xb0, 0xb7, 0xb6, 0xb5, 0xb4, 0xbb, 0xba, 0xb9, 0xb8, 0xbf, 0xbe, 0xbd, 0xbc, 0xa3, 0xa2, 0xa1, 0xa0, 0xa7, 0xa6, 0xa5, 0xa4, 0xab, 0xaa, 0xa9, 0xa8, 0xaf, 0xae, 0xad, 0xac },
{ 0x1b, 0x18, 0x19, 0x1e, 0x1f, 0x1c, 0x1d, 0x12, 0x13, 0x10, 0x11, 0x16, 0x17, 0x14, 0x15, 0x0a, 0x0b, 0x08, 0x09, 0x0e, 0x0f, 0x0c, 0x0d, 0x02, 0x03, 0x00, 0x3b, 0x38, 0x39, 0x3e, 0x3f, 0x3c, 0x3d, 0x32, 0x33, 0x30, 0x31, 0x36, 0x37, 0x34,
0x35, 0x2a, 0x2b, 0x28, 0x29, 0x2e, 0x2f, 0x2c, 0x2d, 0x22, 0x23, 0x20, 0x4a, 0x4b, 0x48, 0x49, 0x4e, 0x4f, 0x4c, 0x4d, 0x42, 0x43, 0x5a, 0x04, 0x1a, 0x5b, 0x3a, 0x59, 0x5e, 0x5f, 0x24, 0x5c, 0x50, 0x52, 0x53, 0x25, 0x57, 0x51, 0x47,
0x01, 0x21, 0x07, 0x27, 0x06, 0x26, 0x40, 0x41, 0x58, 0x5d, 0x46, 0x56, 0x44, 0x54, 0x45, 0x55, 0xdb, 0xd8, 0xd9, 0xde, 0xdf, 0xdc, 0xdd, 0xd2, 0xd3, 0xd0, 0xd1, 0xd6, 0xd4, 0xd5, 0xca, 0xcb, 0xc8, 0xc9, 0xce, 0xcf, 0xcc, 0xcd, 0xc2,
0xc3, 0xc0, 0xc1, 0xc6, 0xc7, 0xc4, 0xc5, 0xba, 0xbb, 0xb8, 0xb9, 0xbe, 0xbf, 0xbc, 0xbd, 0xb2, 0xb3, 0xb0, 0xb1, 0xb6, 0xb7, 0xb4, 0xb5, 0xaa, 0xab, 0xa8, 0xa9, 0xae, 0xaf, 0xac, 0xad, 0xa2, 0xa3, 0xa0, 0xa1, 0xa6, 0xa7, 0xa4, 0xa5,
0x9a, 0x9b, 0x98, 0x99, 0x9e, 0x9f, 0x9c, 0x9d, 0x92, 0x93, 0x90, 0x91, 0x96, 0x97, 0x94, 0x95, 0x8a, 0x8b, 0x88, 0x89, 0x8e, 0x8f, 0x8c, 0x8d, 0x82, 0x83, 0x80, 0x81, 0x86, 0x87, 0x84, 0x85 },
{ 0xf4, 0xf7, 0xf6, 0xf1, 0xf0, 0xf3, 0xf2, 0xfd, 0xfc, 0xff, 0xfe, 0xf9, 0xf8, 0xfb, 0xfa, 0xe5, 0xe4, 0xe7, 0xe6, 0xe1, 0xe0, 0xe3, 0xe2, 0xed, 0xec, 0xef, 0xd4, 0xd7, 0xd6, 0xd1, 0xd0, 0xd3, 0xd2, 0xdd, 0xdc, 0xdf, 0xde, 0xd9, 0xd8, 0xdb,
0xda, 0xc5, 0xc4, 0xc7, 0xc6, 0xc1, 0xc0, 0xc3, 0xc2, 0xcd, 0xcc, 0xcf, 0xa5, 0xa4, 0xa7, 0xa6, 0xa1, 0xa0, 0xa3, 0xa2, 0xad, 0xac, 0xb5, 0xeb, 0xf5, 0xb4, 0xd5, 0xb6, 0xb1, 0xb0, 0xcb, 0xb3, 0xbf, 0xbd, 0xbc, 0xca, 0xb8, 0xbe, 0xa8,
0xee, 0xce, 0xe8, 0xc8, 0xe9, 0xc9, 0xaf, 0xae, 0xb7, 0xb2, 0xa9, 0xb9, 0xab, 0xbb, 0xaa, 0xba, 0x34, 0x37, 0x36, 0x31, 0x30, 0x33, 0x32, 0x3d, 0x3c, 0x3f, 0x3e, 0x39, 0x3b, 0x3a, 0x25, 0x24, 0x27, 0x26, 0x21, 0x20, 0x23, 0x22, 0x2d,
0x2c, 0x2f, 0x2e, 0x29, 0x28, 0x2b, 0x2a, 0x55, 0x54, 0x57, 0x56, 0x51, 0x50, 0x53, 0x52, 0x5d, 0x5c, 0x5f, 0x5e, 0x59, 0x58, 0x5b, 0x5a, 0x45, 0x44, 0x47, 0x46, 0x41, 0x40, 0x43, 0x42, 0x4d, 0x4c, 0x4f, 0x4e, 0x49, 0x48, 0x4b, 0x4a,
0x75, 0x74, 0x77, 0x76, 0x71, 0x70, 0x73, 0x72, 0x7d, 0x7c, 0x7f, 0x7e, 0x79, 0x78, 0x7b, 0x7a, 0x65, 0x64, 0x67, 0x66, 0x61, 0x60, 0x63, 0x62, 0x6d, 0x6c, 0x6f, 0x6e, 0x69, 0x68, 0x6b, 0x6a },
{ 0x1d, 0x1e, 0x1f, 0x18, 0x19, 0x1a, 0x1b, 0x14, 0x15, 0x16, 0x17, 0x10, 0x11, 0x12, 0x13, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x3d, 0x3e, 0x3f, 0x38, 0x39, 0x3a, 0x3b, 0x34, 0x35, 0x36, 0x37, 0x30, 0x31, 0x32,
0x33, 0x2c, 0x2d, 0x2e, 0x2f, 0x28, 0x29, 0x2a, 0x2b, 0x24, 0x25, 0x26, 0x4c, 0x4d, 0x4e, 0x4f, 0x48, 0x49, 0x4a, 0x4b, 0x44, 0x45, 0x5c, 0x02, 0x1c, 0x5d, 0x3c, 0x5f, 0x58, 0x59, 0x22, 0x5a, 0x56, 0x54, 0x55, 0x23, 0x51, 0x57, 0x41,
0x07, 0x27, 0x01, 0x21, 0x00, 0x20, 0x46, 0x47, 0x5e, 0x5b, 0x40, 0x50, 0x42, 0x52, 0x43, 0x53, 0xdd, 0xde, 0xdf, 0xd8, 0xd9, 0xda, 0xdb, 0xd4, 0xd5, 0xd6, 0xd7, 0xd0, 0xd2, 0xd3, 0xcc, 0xcd, 0xce, 0xcf, 0xc8, 0xc9, 0xca, 0xcb, 0xc4,
0xc5, 0xc6, 0xc7, 0xc0, 0xc1, 0xc2, 0xc3, 0xbc, 0xbd, 0xbe, 0xbf, 0xb8, 0xb9, 0xba, 0xbb, 0xb4, 0xb5, 0xb6, 0xb7, 0xb0, 0xb1, 0xb2, 0xb3, 0xac, 0xad, 0xae, 0xaf, 0xa8, 0xa9, 0xaa, 0xab, 0xa4, 0xa5, 0xa6, 0xa7, 0xa0, 0xa1, 0xa2, 0xa3,
0x9c, 0x9d, 0x9e, 0x9f, 0x98, 0x99, 0x9a, 0x9b, 0x94, 0x95, 0x96, 0x97, 0x90, 0x91, 0x92, 0x93, 0x8c, 0x8d, 0x8e, 0x8f, 0x88, 0x89, 0x8a, 0x8b, 0x84, 0x85, 0x86, 0x87, 0x80, 0x81, 0x82, 0x83 } };
}
- répondre
TeeWee , le 24 February, 2008 - 11:33Aaaaaah...
Du vrai de g33k, ca fait plaisir...
Ou doit on te virer les 19$ ? tu as un paypal ?
- répondre
Ulhume, le 24 February, 2008 - 12:40Nan, point la peine pour les $19, à virer sur une oeuvre humanitaire à la limite
- répondre
Larry , le 25 February, 2008 - 08:56Sinon, tant qu'à être sous Win, tu peux toujours utiliser Revelation, le truc qui t'affiche le contenu des champs "étoilés" :
http://www.snadboy.com/RevelationV2.zip
- répondre
Ulhume, le 25 February, 2008 - 11:08Et bien merci pour le tuyau !!! Justement je cherchais un outil de ce genre. Ceci dit, avouons que c'est beaucoup moins sport
- répondre
jon207 , le 26 February, 2008 - 12:57Juste une question : quel intérêt d'utiliser trillian ? Pourquoi pas Pidgin, qui est libre et également multi-protocoles ?
En plus, il stocke les mot de passe en clair ! (~/.purple/accounts.xml)
- répondre
Ulhume, le 26 February, 2008 - 13:12L'intérêt aujourd'hui est quasi nul, d'ailleurs c'est bien pidgin que je lui ai mis sur son nouveau PC. Maintenant Trillian était la seule alternative viable sous Windows pendant des lustres, donc ce papier vise plus une migration face à un existant.
- répondre
jon207 , le 26 February, 2008 - 13:33OK. Juste pour info, un patch (http://www.ubuntugeek.com/fix-for-master-password-expose-for-pidgin.html) existe pour éviter que pidgin ne stocke les mdp en plain-text (même s'il faut alors faire gaffe à ne pas perdre son mdp
).
Heureusement que je suis tombé sur cet article sur Trillian sinon je n'aurai jamais pensé à vérifier comment étaient stockés les mdp de Pidgin. Je trouve ça incroyable ! C'est si compliqué de penser à mettre du md5 partout ?
- répondre
Ulhume, le 26 February, 2008 - 13:53@jon207 En réalité dans le monde d'où vient pidgin aka gaim, ce n'est pas un problème. C'est un logiciel du monde unix où ce qui est stocké dans un dossier utilisateur est inviolable "utilisateur à utilisateur", sauf par le root, bien sur. Sous Unix en général c'est assez classique et sont "en clair" : les mots de passe CVS, le .secret d'un partage DavFS, celui de Rsync, ou mieux, ta clef privée id_dsa pour SSH... Le problème est que cette philosophie ne colle qu'à l'ancienne vision serveur d'unix avec des myriades d'utilisateurs sur une machine administrée par un gars sérieux
Car même s'il reste aujourd'hui impossible (ou improbable
pour un utilisateur A de voler les mdp de l'utilisateur B si les droits sont bien réglés, sur une machine de bureau, cela n'empêche pas l'utilisateur H de booter sur une clef USB... Donc ta remarque est justifiée même si le problème de pidgin & co est compréhensible.
Et sous Windows le problème est juste pire vu que 99% des utilisateurs ont les droits root sur une machine... Et vista ne change rien car il est tellement devenu contraignant que par exemple ma femme m'a annoncé hier qu'elle était "enfin arrivé à devenir admin de sa machine"... Cela se passe de commentaires...
Ceci dit, les logiciels de conceptions récentes, prévus pour le multi-plate forme dés l'origine, prennent en considération ce type de faiblesses et encode d'emblée les données sensibles, ou mieux, utilise un gestionnaire de trousseaux.
- répondre
jon207 , le 26 February, 2008 - 14:57Mouais. Et quand il y a un root exploit comme celui d'il y'a deux semaines (http://linuxfr.org//~inico/26129.html) ?
Si on crypte les mdp de session dans /etc/shadow c'est bien qu'il y a une raison non ? Considérer les permissions sur les ifchiers comme une garantie suffisante de sécurité me semble risqué. Et puis cela suppose de faire confiance à l'administrateur de la machine, or une étude avait montré il y'a quelques mois que beaucoup d'admins en entreprise ne respectent pas la confidentialité de leurs utilisateurs, lisent leurs mails etc.
Bref, un mot de passe en plain text c'est de la daube. Déjà que je supporte pas les sites qui m'envoient mon mot de passe par mail, mais alors un mot de passe stocké en clair sur ma machine...
- répondre
Ulhume, le 26 February, 2008 - 15:46Je n'ai jamais dit que ce n'était pas risqué, je te donne juste l'explication historique de cet état de fait, ce n'est pas tout àfait la même chose
Personnellement, je reste plutôt fanatique de la méthode "gardien des clefs" comme le gestionnaire de trousseaux de Gnome ou kwallet manager pour KDE.
Poster un nouveau commentaire