首页   >   代码编程

一个简单但实用的生成apiKey随机密钥的算法

在项目开发工作中,免不了需要和其他系统对接,为了安全性,提供方总会分配给我们一个apiKey和apiSecret用来鉴权,一般都是数字和大小写字母的混合,最近在设计项目中的支付网关时,也用到了这个东西,不过这次不再是别人给我了,而是我设计给需要对接网关的系统。

顺手将我用到的代码分享给大家,非常简陋,但是基本的功能还是可以满足的

/**
 * 生成指定长度的随机密钥
 * @param length 长度
 * @return 密钥字符串
 */
public static String uniqueId(int length) {
    // 字符源,可以根据需要删减
    String source = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    StringBuilder builder = new StringBuilder();
    String str;
    for (int i = 0; i < length; i++) {
        // 循环随机获得当次字符,并移走选出的字符
        // 也可以直接使用charAt随机选取字符
        str = String.valueOf(source.charAt((int) Math.floor(Math.random() * source.length())));
        builder.append(str);
        source = source.replaceAll(str, "");
    }
    return builder.toString();
}

for循环10次,打印效果图:

一个简单但实用的生成apiKey随机密钥的算法

生成指定长度的随机数的方法,也可以使用这个方法,将source中的字符串全部替换成数字即可!

随机数生成有N多种方法,但是大体上的思路都是差不多的,没有直接使用Random.nextInt(n)这种方式,因为这种方式的局限性过大,n不可以做到无限大,而用字符串拼接的方式,则可以越过这个限制,还可以保证随机的空间更大。

QQ群: 686430774  /  718410762

站长Q: 1347384268

如果文章有帮到你,可以考虑请博主喝杯咖啡!

分享到:

欢迎分享本文,转载请注明出处!

作者:不忘初心

发布时间:2019-03-21

永久地址:https://www.jiweichengzhu.com/article/2805ecd4367b459c91619e184a0c1fb5

评论