一、密码加密函数
- password(str); //从原明文密码str计算并返回加密后的密码字符串
- str为NULL,返回NULL
- password在MySQL服务器鉴定系统中使用。不应该用在个人的应用程序中
- 加密是单向的(不可逆),加密后的密码保存到用户权限表中
- 执行密码加密与UNIX中密码加密方式不同
二、加密函数
- md5(str);
- 参数为字符串,该函数为字符串算出一个MD5 128比特校验和
- 返回值以32位16进制数字的二进制字符串形式返回
- str为NULL,返回NULL
三、加密-解密函数
- encode(str,pswd_str); //使用pswd_str为密码,加密str。返回值为二进制字符串。使用decode解密
- decode(加密的字符串,pswd_str); //使用pswd_str为密码,解密加密过的字符串。返回值字符串
使用
- 加密:encode(被加密的密码,密码);
- 解密:decode(encode(被加密的密码,密码),密码); //也可以用上面返回的二进制字符串
四、加锁/解锁函数
- get_lock(str,timeout); //得到一个锁,锁名为str,持续时间为timeout。可以使用release_lock()或连接断开(正常非正常)解锁
- 若加锁成功:返回1
- 操作超时未:返回0
- 发生错误:返回去NULL
- release_lock(str); //解开被get_lock加锁的锁
- 若锁被解开:返回1
- 若该线程尚未被创建锁:返回0(此时锁还没有解开)
- 若命名的锁不存在:返回NULL
- 若该锁从未被get_lock()的调用获取,或锁已经被提前解开:则该锁不存在
- is_free_lock(str); //检查名为str的锁是否可以使用(没有被封锁)
- 若该锁可以使用(没有人在用这个锁):返回1
- 若锁正在被使用:返回0
- 出现错误:返回NULL
- is_used_lock(str); //检查锁名为str的锁是否正在被使用(被封锁)
- 被封锁:返回使用该锁用户的客户端的连接标识符(connection ID)
- 否则:返回NULL