InstallShield中的加密方法

在InstallShield中难免会对一些东东做加密操作,下面的方法就是一个简单的加密解密方法。这个方法对字符串中的每个字符加17,解密时同样减17:

加密:

function STRING String2Password (szName)
    STRING szRight, szLeft, szAnswer, dummy;
    CHAR   cChar;
    NUMBER nLength; 
begin         
    dummy = "JOQWE";
    szAnswer = "";
    nLength = StrLength(szName);
    while (nLength > 0)
        StrSub(szRight, szName, 1, (nLength-1));
        StrSub(szLeft, szName, 0, 1);
        cChar = STRTOCHAR(szLeft);
        cChar = cChar + 17;
        szName = szRight;
        CharReplace(szLeft,STRTOCHAR(szLeft),cChar,0);
        szAnswer = szAnswer + szLeft;
        nLength = nLength - 1;
     endwhile;     
     szAnswer = szAnswer + dummy;
     return szAnswer;
end;

解密:

function STRING Password2String (szPassword)
    NUMBER nLength, iCount;
    STRING szLeft, szRight, szAnswer;
    CHAR cChar;
begin                    
    szAnswer = "";
    nLength = StrLength(szPassword);
    for iCount = 1 to 4 
         StrSub(szRight, szPassword, 1, (nLength-1));
         StrSub(szLeft, szPassword, 0, 1);
         cChar = STRTOCHAR(szLeft);
         cChar = cChar - 17;
         szPassword = szRight;
         CharReplace(szLeft,STRTOCHAR(szLeft),cChar,0);
         szAnswer = szAnswer + szLeft;
         nLength = nLength - 1;
    endfor;
    return szAnswer;    
end;

其中有一些方法我想拿出来单独讲一下:

计算字符串的长度:

StrLength(szName);

截取字符串:

StrSub(szLeft, szName, 0, 1);

第一个参数是输出参数,第二个是要操作的字符串,第三个是开始截取的位置,最后一个是截取结束的位置。

将字符串转化为字符:

STRTOCHAR(szLeft);

这个方法返回一个字符变量。

你可能感兴趣的:(加密,String,function,解密)