(原创)随机串的产生,可以用于盐值

之前要加密密码的时候,要加入盐值以加强强度,找了部分,又在网上的基础上修改了下(参考网页:http://blog.youkuaiyun.com/wangchangshuai0010/article/details/17188417)

//产生长度为length的随机字符串

 char pSymbol[] = {'~','`','!','@','#','$','%','^','&',
		    '*','(',')','_','+','-','=','{','}','|','[',']',
		    ':',';','<','>','?',
		    ',','.','\"','\\','\'','/'};
char* getRandomString(int length)  
{  
    int nRand, i;  
    char* string;  
    srand((unsigned) time(NULL ));  
    if ((string = (char*) malloc(length + 1)) == NULL )  
        return NULL ;  
  
    for (i = 0; i < length - 1; i++)  
    {  
        nRand = rand() % (sizeof(pSymbol) + 26 * 2 + 10);
        if (nRand >= 0)
        {
            if (nRand < 26)
                string[i] = 'A' + nRand;  
            else if (nRand < 52)
                string[i] = 'a' + nRand - 26;  
            else if (nRand < 62)
                string[i] = '1' + nRand - 52;
            else if(nRand - 62 < sizeof(pSymbol))
                string[i] = pSymbol[nRand - 62];
            else
                string[i] = 'x';
        }
        else
            string[i] = 'x';
    }  
    string[length] = '\0';  
    return string;  
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值