Skip to content

Instantly share code, notes, and snippets.

@muffincode
Created January 5, 2023 09:39
Show Gist options
  • Save muffincode/7ab1046a91c822e9855ea36f510a57e7 to your computer and use it in GitHub Desktop.
Save muffincode/7ab1046a91c822e9855ea36f510a57e7 to your computer and use it in GitHub Desktop.
Challenge 3
/* * * * * * * */
/* Challenge 3 */
/* * * * * * * */
// Les boucles et les tableaux
/* Exercice 1 */
/*
Ecrivez :
- une boucle for qui affiche les chiffres de 1 à 10
- une boucle while qui affiche les chiffres de 1 à 10
*/
let i = 0;
//for (/* complétez */) {
console.log(i);
//}
let j = 0;
//while (/* complétez */) {
console.log(j);
//}
/* Exercice 2 */
/*
Déclarez un tableau qui contient 3 noms d'animaux
et affichez chacune de ses valeurs avec une boucle for
indice: nomDuTableau.length donne le nombre d'éléments d'un tableau
*/
// ...
/*
Maintenant, affichez le en sens inverse !
*/
// ...
/* Exercice 3 */
let hungry = 98 // Valeur sur 100, 0: pas faim, 100: très faim
/*
Ecrivez un programme qui réduit notre jauge de faim jusqu'à 10
et qui affiche ensuite "J'ai plus faim"
*/
// ...
/* Exercice 4 */
/*
Ecrivez une boucle qui affiche seulement les chiffres pairs entre 0 et 20
indice: utilisez la boucle for de l'exercice 1, et une condition
indice 2: (nombre % 2) renvoie 0 si le chiffre est pair
*/
console.log("/ donne le résultat d'une division: 10/3=" + 10 / 3)
console.log("% donne le reste d'une division euclidienne: 10%3=" + 10 % 3)
console.log("4 est il pair ? " + 4%2)
console.log("5 est il pair ? " + 5%2)
// ...
/* Exercice 5 */
let lightIsOn = false;
let amIWorking = false;
/*
Écrivez une boucle for, qui décrit ce qui se passe dans une journée (de 7h à 19h)
Output attendu:
Il est 7h
La lumière est éteinte
Je ne travaille pas
Il est 8h
La lumière est allumée
Je ne travaille pas
...
Les règles sont les suivantes :
- la lumière s'allume à 8h, et s'éteint à 17h
- Je travaille de 9h à 17h
BONUS: Et ma pause midi alors?
*/
/* Exercice 6 */
let hour = 7
lightIsOn = false;
/*
Écrivez une boucle, qui affiche "Je travaille" tant que que la lumière est allumée
Dans votre boucle, pensez à la condition d'arrêt!
Par exemple : la lumière s'arrête si l'heure passe à 17h
(pensez à incrémenter l'heure du coup ! hésitez pas à mettre plusieurs console.log)
*/
/* Exercice bonus */
var MD5 = function(d){var r = M(V(Y(X(d),8*d.length)));return r.toLowerCase()};function M(d){for(var _,m="0123456789ABCDEF",f="",r=0;r<d.length;r++)_=d.charCodeAt(r),f+=m.charAt(_>>>4&15)+m.charAt(15&_);return f}function X(d){for(var _=Array(d.length>>2),m=0;m<_.length;m++)_[m]=0;for(m=0;m<8*d.length;m+=8)_[m>>5]|=(255&d.charCodeAt(m/8))<<m%32;return _}function V(d){for(var _="",m=0;m<32*d.length;m+=8)_+=String.fromCharCode(d[m>>5]>>>m%32&255);return _}function Y(d,_){d[_>>5]|=128<<_%32,d[14+(_+64>>>9<<4)]=_;for(var m=1732584193,f=-271733879,r=-1732584194,i=271733878,n=0;n<d.length;n+=16){var h=m,t=f,g=r,e=i;f=md5_ii(f=md5_ii(f=md5_ii(f=md5_ii(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_ff(f=md5_ff(f=md5_ff(f=md5_ff(f,r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+0],7,-680876936),f,r,d[n+1],12,-389564586),m,f,d[n+2],17,606105819),i,m,d[n+3],22,-1044525330),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+4],7,-176418897),f,r,d[n+5],12,1200080426),m,f,d[n+6],17,-1473231341),i,m,d[n+7],22,-45705983),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+8],7,1770035416),f,r,d[n+9],12,-1958414417),m,f,d[n+10],17,-42063),i,m,d[n+11],22,-1990404162),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+12],7,1804603682),f,r,d[n+13],12,-40341101),m,f,d[n+14],17,-1502002290),i,m,d[n+15],22,1236535329),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+1],5,-165796510),f,r,d[n+6],9,-1069501632),m,f,d[n+11],14,643717713),i,m,d[n+0],20,-373897302),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+5],5,-701558691),f,r,d[n+10],9,38016083),m,f,d[n+15],14,-660478335),i,m,d[n+4],20,-405537848),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+9],5,568446438),f,r,d[n+14],9,-1019803690),m,f,d[n+3],14,-187363961),i,m,d[n+8],20,1163531501),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+13],5,-1444681467),f,r,d[n+2],9,-51403784),m,f,d[n+7],14,1735328473),i,m,d[n+12],20,-1926607734),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+5],4,-378558),f,r,d[n+8],11,-2022574463),m,f,d[n+11],16,1839030562),i,m,d[n+14],23,-35309556),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+1],4,-1530992060),f,r,d[n+4],11,1272893353),m,f,d[n+7],16,-155497632),i,m,d[n+10],23,-1094730640),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+13],4,681279174),f,r,d[n+0],11,-358537222),m,f,d[n+3],16,-722521979),i,m,d[n+6],23,76029189),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+9],4,-640364487),f,r,d[n+12],11,-421815835),m,f,d[n+15],16,530742520),i,m,d[n+2],23,-995338651),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+0],6,-198630844),f,r,d[n+7],10,1126891415),m,f,d[n+14],15,-1416354905),i,m,d[n+5],21,-57434055),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+12],6,1700485571),f,r,d[n+3],10,-1894986606),m,f,d[n+10],15,-1051523),i,m,d[n+1],21,-2054922799),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+8],6,1873313359),f,r,d[n+15],10,-30611744),m,f,d[n+6],15,-1560198380),i,m,d[n+13],21,1309151649),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+4],6,-145523070),f,r,d[n+11],10,-1120210379),m,f,d[n+2],15,718787259),i,m,d[n+9],21,-343485551),m=safe_add(m,h),f=safe_add(f,t),r=safe_add(r,g),i=safe_add(i,e)}return Array(m,f,r,i)}function md5_cmn(d,_,m,f,r,i){return safe_add(bit_rol(safe_add(safe_add(_,d),safe_add(f,i)),r),m)}function md5_ff(d,_,m,f,r,i,n){return md5_cmn(_&m|~_&f,d,_,r,i,n)}function md5_gg(d,_,m,f,r,i,n){return md5_cmn(_&f|m&~f,d,_,r,i,n)}function md5_hh(d,_,m,f,r,i,n){return md5_cmn(_^m^f,d,_,r,i,n)}function md5_ii(d,_,m,f,r,i,n){return md5_cmn(m^(_|~f),d,_,r,i,n)}function safe_add(d,_){var m=(65535&d)+(65535&_);return(d>>16)+(_>>16)+(m>>16)<<16|65535&m}function bit_rol(d,_){return d<<_|d>>>32-_}
// ne vous préoccupez pas de cette fonction
const encodedPassword = "842e89c06ac90dbf29ed197bbb7f2547";
let possiblePasswords = ["123", "test", "abc", "01-01-1999", "doggo", "admin"];
/*
On a réussi à récupérer un mot de passe encrypté, on va tenter
une approche "brute force" pour se connecter.
Testez chaque mot de passe contre le mot de passe encrypté, jusqu'à afficher
le bon mot de passe.
Note: le mot de passe crypté est en MD5, vous avez donc une fonction
qui vous permet de crypter vos MDP possibles de la même manière
On l'utilisera comme ça :
*/
console.log( "Premier mot de passe : " + MD5(possiblePasswords[0]) )
/*
Pour vous aider, décomposez l'exercice comme ça :
- Affichez chaque mot de passe possible en clair
- Affichez chaque mot de passe possible, encrypté en MD5
- Créez un booléen pour comparer un mot de passe possible avec encodedPassword
- Créez une variable truePassword pour stocker le mot de passe que l'on cherche
- à la fin de la boucle, affichez le mot de passe en clair
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment