2012-09-19 102 views
0

/加密我有兩個網頁,/default.asp和/mobile/default.asp。編碼在傳統的ASP

兩個頁面有如下聲明:

元HTTP的當量= 「Content-Type的」 內容= 「text/html的;字符集= UTF-8」

此外,這兩個網頁使用相同的包含提供對某些字符串加密和解密功能的訪問的文件。

問題我遇到的是,使用相同的字符集編碼和相同的加密功能的兩頁是給兩個不同的字符串時相同的字符串與相同的密鑰加密。

任何想法?不正確的輸出包含大量黑色鑽石,其中帶有問號。在HEX中,這些顯示爲FD FF。

附加 - 將加密數據獲得存儲在SQL數據庫中,這就是我怎麼看到兩個不同的加密結果。

因此,它在同一個SQL數據庫,但來自兩個不同的ASP頁面的輸出是(但他們使用的是相同的字符集)相同的加密功能。

回答

1

你可以設置你的服務器端代碼頁如下爲UTF-8:

<%@ Language="VBSCRIPT" CODEPAGE="65001"%> 

<% 
Response.CodePage = "utf-8" 
%> 

這是常見的,讓您的輸出與您的代碼頁。輸出是你與meta標籤設置和也可以設置如下:

<% 
Response.Charset = "utf-8" 
%> 
+0

設置的代碼頁didnt有所作爲 –

+0

難道反正廢話輸出流的變化?如果不是,請嘗試查看您是否沒有緩存問題......有時可能會令人討厭......如果不緩存,雙向加密的不同輸出是否可能來自您的兩頁是在不同的水平上...我的意思是,這可能會影響你以任何方式加密的加密?很難說,沒有看到。 – AardVark71

+0

我會研究這些選項。乾杯:o) –

0

經過約8小時的試驗和錯誤,我設法找到問題。

的ASP頁面本身創建並保存爲UTF-8編碼,它需要的是UTF-8無BOM

+0

你讓我感興趣......我從來沒有聽說過它。是否由您使用的編輯器引起?那麼實際的解決方案是什麼? – AardVark71

+1

這是編輯器中的一個選項。我在Notepad ++中打開了這兩個文件,並確認工作的頁面是沒有BOM的UTF-8(在「編碼」菜單中),而沒有工作的頁面只是UTF-8。只要我將其更改爲沒有BOM的UTF-8,加密就開始正常工作。我希望我完全理解自己! –