作者:iamlaosong
今天看到一个MD5加密的问题,很多语言都提供了加密函数,oracle也提供MD5加密函数,网上搜了一下,加密函数是:
DBMS_OBFUSCATION_TOOLKIT.MD5(input_string =>‘abc‘)
不过,其参数中出现了一个“=>”符号,那么这个符号到底什么意思呢?
oracle实参与形参有二种对应方式:
1、一种是位置方式,和面向对象语言参数传递类似;
2、另外一种是=> 作为形参对应,因为位置对应方法有缺限,比如一个函数有四个参数,但第三个是可以不传(有默认值),这里就没办法位置对应方法,oralce内部一般用此种方法作参数传递。
所以上面调用中“=>”符号的意思就是:该函数有很多参数,参数变量input_string赋值为abc,其它参数为默认值。
MD5常用于密码加密,是一种不可逆的加密(散列)算法,只能加密,不能还原。
MD5用同一值加密的结果每次都一样,所以可以将用户的密码的MD5结果保存在数据库中。当用户登录时,将登陆时的密码MD5之后和数据库中的进行比对,如果相同就证明用户输入的密码正确。
MD5的值是可以碰撞的(两个不同值的MD5结果相同),但几率非常小。需要注意的是,为了保证加密结果的正确性,要注意不同编程语言字符串的编码类型,关于MD5加密,见下面链接:点击打开链接
时间: 2024-11-09 00:45:27