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

之前要加密密码的时候,要加入盐值以加强强度,找了部分,又在网上的基础上修改了下(参考网页:http://blog.csdn.net/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; 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] = ‘a‘ + 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;
}  
时间: 2024-08-03 21:40:41

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

【甘道夫】开发Hive自定义UDF,生成32位字母数字随机串

引言 曾经认为Hive自带的函数应该可以cover住我的日常所需,心想那些需要使用自定义函数的场景是不是太奇葩,谁知命运弄人,自己还是碰上了. 需求很简单,我需要模拟Oracle中的SYS_GUID()函数,生成一个32位的字母数字随机串. 开发环境:Eclipse+Maven,引入Hive0.13.1的依赖. 欢迎转载,请注明来源: http://blog.csdn.net/u010967382/article/details/41083617 代码 package cn.fulong.big

C# 随机串的生成

/**        * 生成随机串,随机串包含字母或数字        * @return 随机串        */        public static string GenerateNonceStr()        {            return Guid.NewGuid().ToString().Replace("-", "");        }

UUID 生成32位随机串

java通过jdk自带的UUID,生成32位的随机串 private static String generate_UUID() { UUID uuid=UUID.randomUUID(); String str = uuid.toString(); System.out.println("str: " + str); // bb01a3cd-987f-469d-9e0f-04dffa2d3278 return str.replace("-", "&quo

(转)浅谈MD5加密算法中的加盐值(SALT)

我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码. 加Salt可以一定程度上解决这一问题.所谓加Salt方法,就是加点“佐料”.其基本想法是这样的:当用户首次提供密码时(通常是注册时),由系统自动往这个密码里撒一些“佐料”,然后再散列.而当用户登录时,系统为用户提供的代码撒上同样的“佐料”,然后散列,再比较散列值,已确定密码是否正确. 这里的“佐料”被称作“Salt值”,这个值是由系统随机生成的,并且只有系统

(转,学习记录)MD5加密算法中的加盐值(SALT)

我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码. 加Salt可以一定程度上解决这一问题.所谓加Salt方法,就是加点“佐料”.其基本想法是这样的:当用户首次提供密码时(通常是注册时),由系统自动往这个密码里撒一些“佐料”,然后再散列.而当用户登录时,系统为用户提供的代码撒上同样的“佐料”,然后散列,再比较散列值,已确定密码是否正确. 这里的“佐料”被称作“Salt值”,这个值是由系统随机生成的,并且只有系统

MD5盐值加密

加密思路 思路解析:(数据解析过程基于16进制来处理的,加密后为16进制字符串) 加密阶段: 对一个字符串进行MD5加密,我们需要使用到MessageDigest(消息摘要对象),需要一个盐值(salt),这个值可以是我们在业务中的一个标识号,比如银行业务中的商户号. 然后对使用salt对password进行组合加密,形成一个加密串Encryp_password,但这时候并不是真正完整的加密串,我们还需要将salt放到加密串的最前面,方便在数据验证时,获取salt. 因此最终的加密串为:SAL_

Web应用你加盐了吗?——浅谈MD5加密算法中的加盐值(SALT)

转自:http://blog.csdn.net/blade2001/article/details/6341078 我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码. 加Salt可以一定程度上解决这一问题.所谓加Salt方法,就是加点“佐料”.其基本想法是这样的:当用户首次提供密码时(通常是注册时),由系统自动往这个密码里撒一些“佐料”,然后再散列.而当用户登录时,系统为用户提供的代码撒上同样的“佐料”,然后

salt值(盐值)

SALT值属于随机值.用户注册时,系统用来和用户密码进行组合而生成的随机数值,称作salt值,通称为加盐值. 1.背景:系统通常把用户的密码如MD5加密后,以密文形式保存在数据库中,来防止黑客偷窥. 2.产生:随着对MD5密文查询工具的出现,而很多用户的密码又设置简单,单纯的对用户密码进行MD5加密后保存,用密文很容易就能反查询得到某用户的密码. 3.原理:为用户密码添加Salt值,使得加密的得到的密文更加冷僻,不宜查询.即使黑客有密文查询到的值,也是加了salt值的密码,而非用户设置的密码.s

关于盐值加密

第一次听说盐值加密的时候,总是感觉怪怪的.因为总会联想到咸,联想到密码是咸的. 其实这里所说的盐,简单的说,就是一组安全随机数.它会在特定的时候,加入到密码中(一般来说是加密后的密码).从而使密码变得更有味道(从单一简单化到复杂化),更安全. 下面我们就通过安全威胁分析分别说说当前两种加盐的形式: 一.数据库泄露 众所周知,用户名和密码是被保存在数据库中.可是一旦数据库发生了泄露,用户名和密码就都遭到了泄露.攻击者可以轻松的获取用户名和密码,进行操作.更大的危害是,由于现在需要注册的网站.app