您现在的位置是:网站首页 > 代码编程 > JAVA开发JAVA开发

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

不忘初心 不忘初心 2019-03-21 围观() 评论() 点赞() JAVA开发

简介:在项目开发工作中,免不了需要和其他系统对接,为了安全性,提供方总会分配给我们一个apiKey和apiSecret用来鉴权,一般都是数字和大小写字母的混合,最近在

在项目开发工作中,免不了需要和其他系统对接,为了安全性,提供方总会分配给我们一个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不可以做到无限大,而用字符串拼接的方式,则可以越过这个限制,还可以保证随机的空间更大。

javaapikey算法

看完文章,有任何疑问,请加入群聊一起交流!!!

很赞哦! ()

文章评论

  • 请先说点什么
    人参与,条评论

请使用电脑浏览器访问本页面,使用手机浏览器访问本页面会导致下载文件异常!!!

雨落无影

关注上方公众号,回复关键字【下载】获取下载码

用完即删,每次下载需重新获取下载码

若出现下载不了的情况,请及时联系站长进行解决

站点信息

  • 网站程序:spring + freemarker
  • 主题模板:《今夕何夕》
  • 文章统计:篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们