gpt4 book ai didi

c# - .NET 和 Javascript 中的简单字符串加密

转载 作者:可可西里 更新时间:2023-11-01 02:51:52 26 4
gpt4 key购买 nike

我正在开发一个 ASP.NET MVC 应用程序,我想在其中使用 C# 在服务器上加密一个短字符串,并将其发送到客户端。

然后在客户端通过Javascript代码解密。

关于如何实现这个的任何想法?

您是否知道一种简单的加密算法(不必是防弹安全的)可以轻松地从 C# 转换为 Javascript,反之亦然?

注意:我可以完全使用 C# 完成此操作并通过 Ajax 进行解密,但我不希望这样做,因为我想尽可能减少网站流量。

最佳答案

听起来您想要混淆或编码,而不是加密。 Base64 encoding 应该在这里运行良好。结果看起来一点也不像电子邮件地址,而且编码过程很快。

在 C# 中,您可以使用:

string emailAddress = "abc@example.com";
string encoded = Convert.ToBase64String(Encoding.UTF8.GetBytes(emailAddress));

您可以使用这个 JavaScript 函数对其进行解码:

function Base64Decode(encoded) {
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;

do {
enc1 = keyStr.indexOf(encoded.charAt(i++));
enc2 = keyStr.indexOf(encoded.charAt(i++));
enc3 = keyStr.indexOf(encoded.charAt(i++));
enc4 = keyStr.indexOf(encoded.charAt(i++));

chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;

output = output + String.fromCharCode(chr1);

if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
} while (i < encoded.length);

return output;
}

C# 应用程序将字符串 abc@example.com 编码为 YWJjQGV4YW1wbGUuY29t,而 JavaScript 版本会将 YWJjQGV4YW1wbGUuY29t 解码回 abc@example.com.

关于c# - .NET 和 Javascript 中的简单字符串加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/746347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com