Utilisation de plusieurs DBS en parallèle et besoin d'initialiser certains enregistrements avec des mots de passe hachés. Dans est une fonction similaire avec Sinon, qui est la solution de contournement la plus facile (telle que SELECT à partir de mise à jour: J'utilise la langue C # dans le projet actuel. p> p> MS SQL Server CODE> Il existe des fonctions pratiques qui permettent au hasch à la volée:
sqlite code>? p>
SQL Server Insérez-la et insérez-la dans
SQLite code> Tables)? P> < P> L'algorithme de hachage préféré est
sha1 code> et les mots de passe sont stockés dans une colonne
blob code>. p>
6 Réponses :
Il n'y a pas de cette fonction de ce type intégré à SQLite3. p>
Mais vous pouvez définir une fonction utilisateur par ex. avec sqlite3_create_function code>
si vous utilisez l'interface C, et mettre en œuvre SHA-1 avec cela. (Mais si vous rencontrez une interface programmable, vous pouvez peut-être simplement SHA-1 le mot de passe en dehors du moteur SQL.) P>
Vous pouvez également essayer de trouver / créer une extension et une chargement avec Le load_extension < / Code> Fonction
, mais je n'ai pas d'expérience à ce sujet. P>
EDIT: P>
system.data.sqlite code> dans c #. li>
- Utilisez System.Security.Cryptography.sha1 < / a> Pour calculer le hachage SHA-1. LI>
ul>
SQLite ne vient pas avec SHA1, mais il est relativement facile à ajouter. Vous n'avez pas dit quelle langue, vous utilisez, mais vous pouvez consulter la documentation C pour Create_function et SQLITE3_RESULT . Vous pouvez également consulter Exemple de Comment ajouter SHA1 à SQLite en utilisant RUBY. P>
avec System.Data.SQLite , ils sont appelés fonctions définies par l'utilisateur. Vous pouvez regarder Cet exemple sur le site principal. p>
Autant que je sache, SQLite n'a pas de fonctions de hachage intégrées. p>
Il y a une manière pour ajouter des fonctions personnalisées à SQLite, mais c'est probablement plus facile Si vous calculez simplement le hachage SHA1 dans votre programme et stockez-le en SQLite. P>
Créer des fonctions personnalisées pour SQLite dépend un peu sur l'API et la langue que vous utilisez. Je n'ai que de l'expérience avec la création de fonctions SQLite de Python. P>
Vous pouvez créer une fonction personnalisée pour SHA1 en C # comme ceci: Cette fonction peut être appelée des données binaires ou des chaînes. Les chaînes sont hachées dans leur représentation unicode. Cela devrait correspondre à SQL Server. P> La fonction peut être appelée comme ceci: p>
Notant que SQLite a un https://www.sqlite.org/src/file /ext/misc/sha1.c p>
Bien que cela puisse ne pas être activé par défaut. P> SHA1 () Code> Extension ajoutée en 2017 P>
Ce qui suit construit le dernier SQLite avec support de bibliothèque dynamique et compile SHA1 Extension . Il assume également la distribution Linux basée sur Debian:
cd build sqlite3 <<< ' .load ./libSqlite3Sha1 select sha1(1); .exit ' # compare output with: echo -n 1 | sha1sum cd -
Merci! travaillé comme un charme :)
SHA-1 n'est pas un cryptage mais une fonction de hachage cryptographique.
SHA1 n'est pas un bon choix pour les mots de passe de hachage, car il s'agit de façons de rapides et rend donc la brute-forçage facile. Regardez des fonctions de dérivation clés telles que BCRYPT ou PBKDF2, ce dernier est intégré à C #, car les bibliothèques BCRYPT sont disponibles.