Farseer

导航

D365 FO产生随机字符串

可以直接用.net里的类库中的方法生成随机数。
System.Web.Security.Membership::GeneratePassword(_length, 0)。
这个是用来生成随机密码的一个方法,第二个参数是至少要包含非数字字母的字符的个数。
如果是想生成的随机字符串只包含字符和数字,这个方法就不适合了,可以用如下代码:

public static str randomAlphaNumericStr(int _size)
    {
        System.String sourceStr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
        System.Char[] chars = sourceStr.ToCharArray();

        System.Byte[] data = new System.Byte[4 * _size]();
        using (RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider())
        {
            crypto.GetBytes(data);
        }
        System.Text.StringBuilder result = new System.Text.StringBuilder(_size);
        for (int i = 0; i < _size; i++)
        {            
            var rnd = System.BitConverter::ToUInt32(data, i * 4);
            var idx = rnd mod chars.Length;

            result.Append(chars.GetValue(idx));
        }
        return result.ToString();
    }

posted on 2020-12-26 11:38  佛西亚  阅读(188)  评论(0编辑  收藏  举报