#16 Es completamente necesario, porque algunos no se dan ni cuenta de la burrada que estan pidiendo. Estan pidiendo que un telefono sea algo super privado...pero a su vez mandarle un SMS por X servicio que en cualquier caso si o si va a dejar registro. Algunos de por aquí estamos haciendolo más por diversión que como algo a implementar...pero ya te digo yo que a más de alguno le parece una idea cojonuda y sin problemas.
---
Lo que me he dado cuenta, al depurar con el patito de goma, es que si lo cifro en BCrypt CREO y solo CREO que no puedo hacer una comprobación de si "ya existe" facil. Me explico:
Si lo hago en MD5, (No es ni encriptación, es un ejemplo), y tengo el telefono 655165165, el resultado que me va a dar siempre es b6cacee032cce15c9b58ebae19ddf75b. Entoces si me llega otra vez 655165165 la forma de saber si tengo ese telefono en BD es pasar ese telefono a MD5 y buscarlo entre los guardados. Hasta aquí tiene sentido. Una misma cadena siempre va a dar lo mismo, así que hacer una consulta where es facil.
Pero es que en BCrypt no puedo hacer eso. Si yo cojo el mismo numero ahora mismo Bcrypt me va a dar esto $2a$12$tK7HDn5GhjO5Bauxt7KNaOuNeskglYj/E/fozqIF1WppC2iNMFbR...pero es que dentro de 5 segundos me va a dar esto $2a$12$bgAfVdasfaeW5l.MoT2JKO8Vwldlh3AQr8kJypkUIvFonRwZtyf6.
Entonces la única forma que tengo de saber si un teléfono ya esta en BD sería ir fila a fila preguntándole al Bcrypt de turno si el telefono cifrado equivale al teléfono que me han dado. Lo cual a más grande sea la base de datos de más tardara, sabiendo que encima tienes que darle bastante "poder" para que sea difícil de descifrar a lo bruto, la tarea se transforma bastante titánica
Para las contraseñas es cojonudo, porque solo tienes que mirar una fila, nada más, aquella que equivalga al email/nombre de usuario. Y si alguien repite contraseña te la sopla...pero tu no podrias saber que alguien ha repetido la contraseña, porque como bien has dicho antes, un mismo texto va a dar infinitos resultados