如何解决如何生成随机数代码以确认电子邮件
我是初学者,在互联网上找不到通过电子邮件向刚注册或想重置密码的用户发送 5 位代码(例如)的教程。
我在 Node.js 和 React.js 前端下使用 Rest API。因此,您必须注册用户并向他发送一封包含代码的电子邮件,当用户尝试连接时他的帐户在数据库中未显示为“活动”,我们将要求他提供 5 位代码。
我找不到关于此实践的任何教程,以了解如何在没有安全漏洞的情况下以正确的方式进行操作。
感谢您的理解!
解决方法
从一组给定的字符中生成一个五位数的代码是一项非常简单的任务。消除安全问题要困难得多,这取决于您所需的安全级别。
如果您通过未加密的电子邮件发送代码,安全性不是很高(中间人攻击)。如果您使用加密电子邮件 (PGP),则可以认为它是安全的。
从给定集合中生成 5 个字符代码的代码:
const givenSet = "abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789";
let code = "";
for(let i=0; i<5; i++) {
let pos = Math.floor(Math.random()*givenSet.length);
code += givenSet[pos];
}
,
使用原生 crypto
包会容易得多。
const crypto = require('crypto')
const randomEightDigits = crypto.randomBytes(6).toString('base64')
,
使用crypto
生成随机数的最简单方法
const crypto = require("crypto");
// Asynchronous
crypto.randomInt(0,1000000,(err,n) => {
if (err) throw err;
console.log(n);
});
快乐编码..!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。