Javascript中的令牌生成熵等效[重复]

Posted

技术标签:

【中文标题】Javascript中的令牌生成熵等效[重复]【英文标题】:Token generation entropy equivalent in Javascript [duplicate] 【发布时间】:2020-04-29 11:41:14 【问题描述】:

这一小段 php 代码生成具有非常好的熵的标记。我想知道javascript中是否有可以完成相同功能的函数。欢迎提供示例。

这里是 PHP

function getToken($length) 

    $token = "";
    $codeAlphabet  = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $codeAlphabet .= "abcdefghijklmnopqrstuvwxyz";
    $codeAlphabet .= "0123456789";

    $max = strlen($codeAlphabet);

    for ($i=0; $i < $length; $i++) 
        $token .= $codeAlphabet[random_int(0, $max-1)];
    

    return $token;


echo getToken(24);

【问题讨论】:

【参考方案1】:

做几乎相同的事情..

function getToken(length) 
   var result           = '';
   var characters       = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
   var charactersLength = characters.length;
   for ( var i = 0; i < length; i++ ) 
      result += characters.charAt(Math.floor(Math.random() * charactersLength));
   
   return result;


console.log(getToken(10));

Jquery 示例

$( document ).ready(function() 

	// set the length of the string
	var stringLength = 10;

	// list containing characters for the random string
	var stringArray = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
  'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','!','?'];

	$("#generateToken").click(function ()

		var rndString = "";
	
		// build a string with random characters
		for (var i = 1; i < stringLength; i++)  
			var rndNum = Math.ceil(Math.random() * stringArray.length) - 1;
			rndString = rndString + stringArray[rndNum];
		;
		
		$("#showToken").html('<p><strong>' + rndString + '<strong></p>');

	);

);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>Click the button below to generate a new, randomized token.</p>
<button id="generateToken">Generate New Token</button>
<p id="showToken"></p>

【讨论】:

不错。既然你提的差不多了,有什么区别值得注意吗? 应该完全一样,抱歉拼写错误 当您从高度支持的答案中复制代码时,至少提供参考或关闭问题:https://***.com/questions/1349404/generate-random-string-characters-in-javascript @icecub 大约 3 年前,我从 youtube 上的一个视频教程中得到了这个,用于重置密码,这个人的名字叫 JOHN,没有看到那个答案,也没有从那里复制。它是一个令牌生成脚本,如果您在互联网上搜索,几乎所有脚本都是相同的。谢谢

以上是关于Javascript中的令牌生成熵等效[重复]的主要内容,如果未能解决你的问题,请参考以下文章

PHP等效于JavaScript getTime() [重复]

python中的等效代码(时间)[重复]

Javascript curl等效[重复]

生成等效于数字的文本[重复]

jQuery event.preventDefault 的 Javascript 本机等效项 [重复]

使 JavaScript 正则表达式等效于 PHP 正则表达式