Mat*_*ker 0 c# asp.net encryption asp-classic
所以我有一种情况需要在url上传递一些参数.为了在url上没有id = 1,我添加了一个简单的加密方法来模糊这些值.这在.Net土地上运行良好.然而,现在,我需要从经典的asp页面指向这个期望参数加密的.net页面.我真的不太熟悉加密或经典的asp,并希望有人能够指导我一个好的JS库,或者只是提供这个函数的经典asp版本?如果.Net代码有任何问题,我也很乐意听到有关这方面的反馈意见.
这是加密方法:
public static string Encrypt(string Input)
{
try
{
key = Encoding.UTF8.GetBytes(EncryptionKey.Substring(0, 8));
var des = new DESCryptoServiceProvider();
Byte[] inputByteArray = Encoding.UTF8.GetBytes(Input);
var ms = new MemoryStream();
var cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
catch (Exception)
{
return "";
}
}
Run Code Online (Sandbox Code Playgroud)
这里是解密方法(我需要这个来解密经典的asp加密文本):
public static string Decrypt(string Input)
{
try
{
key = Encoding.UTF8.GetBytes(EncryptionKey.Substring(0, 8));
var des = new DESCryptoServiceProvider();
var inputByteArray = Convert.FromBase64String(Input);
var ms = new MemoryStream();
var cs = new CryptoStream(ms, des.CreateDecryptor(key, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
Encoding encoding = Encoding.UTF8;
return encoding.GetString(ms.ToArray());
}
catch (Exception)
{
return "";
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
这不是一些简单的翻译!Classic ASP无法访问.NET Framework.您需要在Win32代码中执行所有这些操作.
您应该将C#代码打包为一个COM组件,然后可以从Classic ASP站点访问它.