- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是我的方法:
public static string GenerateRandomString(int bytes)
{
var rng = new RNGCryptoServiceProvider();
var randomBytes = new byte[bytes];
rng.GetBytes(randomBytes);
return Convert.ToBase64String(randomBytes);
}
生成的每个值:
即:
Qcr6OgNxkGzVebNl00Dtk7yCaz64owUx7pKEhl1Ogn4=
IGFLQB0OrReDB3P6nuZgqZIkTwTtch9Fk3Rx/DL4CgI=
UAJwLwIPYEJ9SzMAK/EMiUJ/DHhmfy6UVMM5MU6Dcpg=
总是以“=”结尾——这是为什么?
我将其作为密码重置电子邮件的随机字符串发送,但 Microsoft Outlook 出现问题,无法在链接末尾提取 =。有没有人知道解决这个问题的方法而不是简单地切断字符串的最后一个字符?
最佳答案
它与返回的字节数有关。 = 用作 base64 的填充。
编辑
使用您的算法,我使用 1 到 20 个字节生成字符串,每行打印 1 个结果。如您所见,有些字符串以等号结尾,有些则没有。
Ng==
HAo=
g+h1
pdR+cQ==
z5bFWwc=
BilTQWCU
kXo96Jilxw==
7jc16UHgbGc=
DnLzoSDUNVfQ
6MwGWLD3ZcbfZA==
hADhg4HFdMVi1n0=
cWm2HEKs48VaoYgl
TrwxX20FmEs7o8u2ag==
WLORuUzewYDB18XFAcc=
tSnvFVVm/NZ2tkXJnB6V
McUWf0mAmM5/0Upu+eYd+w==
Eln3QPMr2VjXt4e3GsZuOXo=
DBYLTG3fDbMC5I1bnYmG/NxH
KgGhxdZjmjUypsqnbQUMCJzVrQ==
yI+3sFdzBX4Xfb2u6xuzQdS9II0=
编辑#2
我意识到我解释了 = 出现的原因,但从未建议过另一种生成 URL 参数的方法。一种这样的方式是 System.Web.HttpServerUtility.UrlTokenEncode()将字节数组转换为 url 友好格式的方法。要将字符串转换回字节数组,请使用 System.Web.HttpServerUtility.UrlTokenDecode()方法。
关于c# - 为什么 RNGCryptoServiceProvider 值总是以等号结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9132215/
我有一个代码: $("#button").click(function () { for (var i = 0; i < 4; i++) {
我一直在应该用 YAML 编写的 ansible 剧本中阅读 key1=value1 key2=value2 风格的字典。另一方面,我没有找到任何关于这种格式的文档,而且似乎在某些情况下它对我不起作用
我使用 $(this).attr("href"); 来选择被单击元素的 href 属性值,但我只需要选择最后一个 '= 之后的部分' 符号。 示例: href="index.php?con=123&i
我有一个查询需要 20 秒才能执行,请按照我的查询操作: SELECT MATLIGA.COD_MAT_FAMILIA FROM ORCAMENTOS.dbo.OR_1INSUMOS INSU
我使用 Visual studio 2012 和插件 Visual Assist X 版本。 1916.我有两个问题。 1) 当我写等号 (=) 时,我希望在符号前后自动插入空格(我必须始终在键盘上按
我有一个数据模板 xaml,目前看起来像这样用于报告屏幕
这个问题在这里已经有了答案: 8年前关闭。 Possible Duplicate: When to use the equals sign in a Scala method declaration?
嘿,我不确定为什么会这样。 GA 似乎随机地将等号附加到某些 URL。它们不会以这种方式出现在实时站点上。 我做了一个没有过滤器或其他配置的全新 View ,它仍然会发生。我以前从未见过这种情况,这很
是否可以在“=”表达式中转义 python f 字符串? (Python 3.8 中的新功能) 例如我有以下表达式: def double(x): return x * 2 some_int
是否可以在“=”表达式中转义 python f 字符串? (Python 3.8 中的新功能) 例如我有以下表达式: def double(x): return x * 2 some_int
使用 PHPMailer 5.2.14,电子邮件以文本/html 格式发送。传出的文本每隔 75 个字符就会散布一些等号。 我尝试使用 EOL workaround , 但它没有删除多余的等号: $e
如果 C++ 中包含等号,我如何解析命令行选项?一个例子是: ./testApp --parameter1=value1 我使用以下行来检查参数是否存在: bool cmdOptionExists(c
我在创建带有索引的迭代器时碰巧犯了一个复制粘贴错误,如下所示。 ... 正确的版本应该在索引语句中包含等号而不是 of。 问题不在于如何获取索引。 我感兴趣的是我得到了[Object object],
我正在自动执行 RSA 软 token 转换并将转换字符串传递给 Outlook。我意识到我无法使用批处理将字符串变成 URL 到 outlook 命令行,但这不是我的问题。我的问题是将讨厌的等号转换
我正在关注 Baking Pi剑桥大学的类(class),其中基于 ARMv6 指令集构建了一个简单的操作系统,针对 Raspberry Pi。 到目前为止,我们一直在使用两种通过 ldr 指令将数据
我是一名优秀的程序员,十分优秀!