QString 新增三个函数 CheckPassword / PasswordScale / StringReplaceW

1、CheckPassword /PasswordScale 函数来检验密码的强度

这组函数用于检查密码的强度,CheckPassword 会返回一个评定的强度级别,如果级别较低,则应提示用户更改密码,以适应强度要求。如:

if CheckPassword(APassword) in [pslLowest,pslLower] then
    begin
      ShowMessage('您的密码过于简单,很不安全,请重新设置复杂一点的密码。');
      Exit;
    end;

而 PasswordScale 会对密码的复杂度返回一个评分,这个评分代表函数认为密码破解的难度。

我们看一下声明:

TPasswordStrongLevel = (pslLowest, pslLower, pslNormal, pslHigher,
    pslHighest);
///<summary>计算指定内容的密码强度</summary>
///<param name="S">密码</param>
///<returns>返回一个>=0的密码强度值</returns>
function PasswordScale(const S: QStringW): Integer;
///<summary>将指定的密码强度系数转换为强度等级</summary>
///<param name="AScale">通过PasswordScale得到的强度等级</param>
///<returns>返回转换后的强度等级</returns>
function CheckPassword(const AScale: Integer): TPasswordStrongLevel; overload;
///<summary>计算指定内容的密码的强度等级</summary>
///<param name="S">密码</param>
///<returns>返回计算得到的强度等级</returns>
function CheckPassword(const S: QStringW): TPasswordStrongLevel; overload;

再具体的用法我就不再此缀述了,只需要传递参数,检查返回值而已。

2、StringReplaceW 的一个重载,用来替换一个字符串中的部分字符为指定的字符,这里常用来掩盖部分敏感内容。

首先看下函数声明:

/// <summary>替换指定范围内的字符为指定的字符</summary>
/// <param name="AChar">占位字符</param>
/// <param name="AFrom">开始位置,从0开始</param>
/// <param name="ACount">替换数量</param>
/// <returns>返回替换后的字符串</returns>
function StringReplaceW(const S: QStringW; const AChar: QCharW;
  AFrom, ACount: Integer): QStringW; overload;

用法也很简单,比如我们要将 18690023511 中间的 9002 替换成 **** ,则直接调用:

S:=StringReplaceW('18690023511','*',3,4);

即可,同样,如果 ACount 大于剩余的字符数量,则后续的内容全部会被替换为占位字符。

分享到: