所以我有一個情況,我需要傳遞一些參數上的網址。爲了在網址上沒有id = 1,我添加了一個簡單的加密方法來混淆這些值。這在.Net域內運行良好。然而,現在我需要從一個經典的asp頁面指向這個期望參數被加密的.net頁面。我真的不太熟悉加密或經典的ASP,並希望有人能夠指導我一個很好的JS庫,或者只是提供一個經典的ASP版本的這個功能?如果.Net代碼有任何問題,我也很想聽到有關這方面的反饋。從c#轉換片段到vbscript
這裏的加密方法:
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 "";
}
}
而這裏的解密方法(我需要這個解密傳統的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 "";
}
}
感謝您的幫助!
感謝您的輸入。我曾考慮過這樣做,但在IIS x64下運行時遇到了自定義com組件的問題。任何人都可以證實這是或不是可行的,如果在x64下有什麼特別的考慮? – 2009-08-12 16:11:22
您可以訪問x64中的自定義COM +組件。我不知道他們是否是自定義步驟,但它是可能的。我們有一些遺留代碼。 – Jab 2009-08-12 16:50:24
進入您的編譯選項,並在高級嘗試專門針對x64的CPU,然後確保它設置爲註冊COM Interop。 一旦我做完了,我還沒有問題。另外我發現使用.NET部署在註冊DLL時效果更好,但我也創建了BAT文件,並手動引用了regasm命令。 – RiddlerDev 2009-08-12 17:51:00