1 前言 众所周知,MD5是目前应用最多的密码保护方法,该编码传说为不可逆加密编码<也就是说,永运无法倒算原码>。 使用MD5加密用户的操作密码,可以有效防止系统维护人员直接进入数据库时出现系统安全漏洞<直接使用SELECT语句查询,将用户密码字段只能看
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的目的,是为了调试方便,同时多提供一个知识点。
娇娱网还为您提供以下相关内容希望对您有帮助:
MySQL中MD5加密的使用方法mysql中md5写法
在MySQL中,可以通过UPDATE语句的SET子句来更新表中的数据。下面是一个使用MD5函数加密数据库字段的示例:mysql> UPDATE users SET password=MD5(‘123456’) WHERE id=1;这个示例中,我们将users表中id为1的用户密码字段加密为MD5加密后的值’5d41402abc4b2
...password的这一列全部使用md5加密,不知道怎么实现。
一般安全一点的做法是 1给user 表加一个字段PMD5;2 UPDATE USER SET pmd5=md5(password) //用MD5值来更新;3 删除原来的password字段;4 pmd5 字段改名为password字段;完成.
VUE+Springboot实现登录密码动态加解密(bcrypt+md5)
在登录时,首先使用MD5加密密码,然后使用BCrypt对加密后的密码进行二次加密。设置加密的盐值rounds为10。获取文本摘要(MD5加密): const md5Password = this.$md5(this.loginForm.password); const saltRounds = 10; const hashedPassword = await bcrypt.hash(md5Password, saltRounds);后端实现代码依...
ASP.net 加密解密MD5 或HASH要C#
在这个例子中,我们选择了"MD5"作为加密算法。通过调用HashPasswordForStoringInConfigFile方法,我们将原始字符串"123456"加密为一个新的字符串str2。需要注意的是,尽管MD5算法在当时被认为是一种安全的哈希算法,但由于其碰撞攻击的威胁,现在推荐使用SHA-256或其他更安全的哈希算法。此外,在实际应用中,...
求一段VB登陆代码~需要MD5加密密码框的
在这个代码片段中,Command1_Click 是一个事件处理程序,它在用户点击登录按钮时触发。首先,它使用Md5_String_Calc 函数计算用户输入的密码的MD5值。然后,它从数据库中查询是否有匹配的用户名和密码。如果查询结果为空,则弹出错误提示;否则,弹出登录成功的提示。接下来是Md5_String_Calc 函数的实现,...
Access数据库如何做MD5加密?
md5加密,本身与数据库没有关系,加密是在asp代码本身加密.在md5.asp中有一个 md5() 函数.假如在数据库中的密码字段为 password 在asp代码中,表示密码的变量为 pwd 则 md5(pwd) 后,就是md5加密过后的密文了.然后用 insert 或其他如ado方法将这个密文存入数据库.就好了.验证密码的时候,同样用 md5(...
MD5加密,怎么给传入数据库的密码加密
你在传入数据库前把密码转换为md5,在注册界面上就转换,不过现在md5也不保密,在百度上一查就能反译出来,所以一般转换为md5后再把其中的一些数字或字母替换为别的字母,这样即使别人进入数据库里也不能把加密又替换后的密文改换为明文了,这种规则只要你自己知道就行 ...
如何利用Oracle自带的MD5对数据进行加密
END;执行select md5('123456') from dual;将会得到MD5('123456')的结果为e10adc3949ba59abbe56e057f20f883e。除了MD5哈希之外,Oracle还提供了DES加密功能,这可以通过创建自定义的加密函数来实现。以下是一个简单的DES加密函数示例:CREATE OR REPLACE function encrypt_des(p_text varchar2, p_key ...
mysql如何把user表的password字段32位MD5加密啊
整个字段值加密UPDATE member SET password=md5('password')
如何利用Oracle自带的MD5对数据进行加密
MD5('123456')e10adc3949ba59abbe56e057f20f883e 2、DES加密 create or replace function encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is v_text varchar2(4000);v_enc varchar2(4000);raw_input RAW(128) ;key_input RAW(128) ;decrypted_raw RAW(2048);begin v_text...