使用MD5编码实现数据库用户密码字段的加密
1 前言 众所周知,MD5是目前应用最多的密码保护方法,该编码传说为不可逆加密编码<也就是说,永运无法倒算原码>。 使用MD5加密用户的操作密码,可以有效防止系统维护人员直接进入数据库时出现系统安全漏洞<直接使用SELECT语句查询,将用户密码字段只能看
1 前言
众所周知,MD5是目前应用最多的密码保护方法,该编码传说为不可逆加密编码<也就是说,永运无法倒算原码>。 使用MD5加密用户的操作密码,可以有效防止系统维护人员直接进入数据库时出现系统安全漏洞<直接使用SELECT语句查询,将用户密码字段只能看到乱码,或者"****">
本文针对密码字段加密,作一实例,希望能给大家系统建设过程带来帮助。
2 技术点
2.1 DBMS_OBFUSCATION_TOOLKIT.MD5
DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数,但偶在使用select DBMS_OBFUSCATION_TOOLKIT.MD5(input_string =>'abc') a from Dual时,却有错误提示,看来该函数只能直接在程序包中调用,不能直接应用于SELECT语句。
2.2 Utl_Raw.Cast_To_Raw
DBMS_OBFUSCATION_TOOLKIT.MD5返回的字串,是RAW类型,要正确显示,需要经过Utl_Raw.Cast_To_Raw转换<该知识点则之前论坛中NICK511贴子中获得>
3 实例演练 3.1 测试环境 使用Scott/Tiger@YourDBName --3.2.1 创建数据表 Drop Table Test_User; CREATE TABLE Test_User ( UserName VARCHAR2(30) NOT NULL, PassWord VARCHAR2(2000) NOT NULL ) / --3.2.2 创建程序包 Create Or Replace Package Test_MD5 AS Function FN_GetMD5(P_Str In VarChar2) Return VarChar2; Function FN_CheckUser (P_UserName In VarChar2 ,P_Password In VarChar2) Return Number; End; / CREATE OR REPLACE PACKAGE BODY Test_MD5 AS FUNCTION FN_GetMD5 (P_Str IN VARCHAR2) RETURN VARCHAR2 AS BEGIN RETURN DBMS_OBFUSCATION_TOOLKIT.MD5( input_string => Upper(P_Str)); END; Function FN_CheckUser (P_UserName IN VARCHAR2 ,P_Password IN VARCHAR2) Return Number Is L_Password VarChar2(2000); BEGIN SELECT Utl_Raw.Cast_To_Raw(Password) INTO L_Password FROM Test_User WHERE Upper(UserName) = UPPER(P_UserName); If Utl_Raw.Cast_To_Raw(FN_GetMD5(P_Password))=L_Password Then Return 1; Else Return 0; End If; EXCEPTION WHEN NO_DATA_FOUND THEN Return 0; END; End; / --3.3 测试 Delete Test_User; Insert Into Test_User Values('A',Test_MD5.FN_GetMD5('aa')); Insert Into Test_User Values('B',Test_MD5.FN_GetMD5('bb')); Commit; Select Test_MD5.FN_CheckUser('a','aa') From Dual; Select Test_MD5.FN_CheckUser('a','bb') From Dual; 注:对MD5编码的比较,可以不需要经过Utl_Raw.Cast_To_Raw转换。此处使用Utl_Raw.Cast_To_Raw的目的,是为了调试方便,同时多提供一个知识点。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel pour changer le mot de passe wifi sur téléphone mobile (opération simple)

Comment obtenir facilement le mot de passe WiFi d'un téléphone mobile connecté (trouver rapidement le mot de passe WiFi enregistré dans le téléphone mobile)

Que dois-je faire si mon mot de passe Win10 ne répond pas aux exigences de la politique de mot de passe ? Que faire si le mot de passe de mon ordinateur ne répond pas aux exigences de la politique ?

Comment réinitialiser le mot de passe WiFi via un routeur (étapes simples pour vous aider à protéger la sécurité de votre réseau domestique)

Tutoriel détaillé sur l'établissement d'une connexion à une base de données à l'aide de MySQLi en PHP

iOS 18 ajoute une nouvelle fonction d'album 'Récupéré' pour récupérer les photos perdues ou endommagées

Qu'est-ce que Bitget Launchpool ? Comment utiliser Bitget Launchpool ?

Comment gérer les erreurs de connexion à la base de données en PHP
