How can one be able to learn more about security if not implementing such things himself and learning from his faults ?!
Certo, provare a implementarlo è un buon modo per imparare, ma solo se lo si confronta per testare e ispezionare da esperti e dichiararlo come tale , senza tentare di usarlo effettivamente in produzione.
Il grosso problema qui è che "l'esperienza di apprendimento" può accadere solo dopo che ti sei attaccato con successo. (puoi credere di aver imparato qualcosa mentre hai appena imparato a creare grandi falle nella sicurezza per la tua azienda)
Molte persone potrebbero semplicemente non rendersi conto di essere l'ennesimo ragazzo intelligente che pensa "hey, dovrei implementare questo algoritmo, imparerò e poi avrò alcune funzioni utili da riutilizzare, è molto più semplice di aggiungere quelle grandi librerie che sembrano troppo complicate per quello che voglio ".
In generale, "reinventare la ruota" è interessante come esperienza di apprendimento, purché rimanga nella sandbox , e / o sia rivisto dagli esperti tanto quanto ciò che è in gioco richiede .
Se implementi un algoritmo di ordinamento un po 'male, allora ciò che rischi di solito è creare un'app di scarsa qualità o anche potrebbe avere un bug che porti a un problema di sicurezza. (Tieni presente che il problema di prestazioni potrebbe essere catastrofico se il tuo cliente ne dipende, forse persino quanto una violazione della sicurezza potrebbe essere)
Se implementi un algoritmo crittografico male allora probabilmente avrà una violazione della sicurezza. E le persone che lo fanno individualmente hanno una probabilità molto elevata di implementare la crittografia in modo sbagliato. E questo è spesso molto problematico per qualsiasi cliente (e te stesso)
TLDR;
L'uso dei tuoi criptocattoli sandbox nel mondo reale potrebbe avere conseguenze molto spiacevoli per i tuoi clienti.
Sì, puoi imparare da esso, ma è meglio avvisare tutti quelli che sembrano non informati che non dovresti giocare con crypto in produzione.