다음은 간단한 로컬 "웹 서비스"호출을 사용하여 서버 측 JScript 함수를 래핑하는 방법입니다. 어딘가 관련 필요한 경우이 방법 (및 클래스를 추가하여 ASP.NET 응용 프로그램에서 DoHash.asp
<!-- #include file="passwordHasher.js" -->
<%
Dim password
password = Request.Form("password")
Response.Write HashPassword(password)
%>
:
파일 :
해싱 함수를 참조하는 JScript의 또는 ASP 스크립트를 추가
암호를 해시하는 데 필요한 응용 프로그램의 부분에서
public class HashWrapper
{
public static string HashPasswordFromJScript(string password)
{
string url = "https://mysite.com/DoHash.asp";
string fields = "password=" + password;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
using(Stream rs = request.GetRequestStream())
{
using (MemoryStream ms = new MemoryStream())
{
using(BinaryWriter bw = new BinaryWriter(ms))
{
bw.Write(Encoding.UTF8.GetBytes(fields));
ms.WriteTo(rs);
ms.Flush();
}
}
}
using(HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
if(response.StatusCode == HttpStatusCode.OK)
{
using(Stream rs = response.GetResponseStream())
{
using (StreamReader rr = new StreamReader(rs))
{
StringBuilder sb = new StringBuilder();
int bufferSize = 1024;
char[] read = new Char[bufferSize];
int count = rr.Read(read, 0, bufferSize);
while (count > 0)
{
sb.Append(read, 0, count);
count = rr.Read(read, 0, bufferSize);
}
return sb.ToString();
}
}
}
return null;
}
}
}
은 전화 :
string hashedPassword = HashWrapper.HashPasswordFromJScript(password);
귀엽지는 않지만 당신을 데려 갈 것입니다. 또한 사이트에서 SSL을 사용하여 트래픽을 암호화 할 수 있다고 가정합니다.
출처
2011-02-02 00:11:21
Kev
난 당신이 JScript.NET 공상 뭔가를 (http://en.wikipedia.org/wiki/JScript_.NET) 할 수있는 생각하지만, 더 나은 솔루션은 C#을에 은밀한 아마입니다. 이 구문은 (특히 C# 2.0 이상으로) 충분히 가깝기 때문에 쉽게 이해할 수 있습니다. 정말 복잡하다면 JLCA를 시험해 볼 수도 있습니다. http://www.microsoft.com/downloads/en/details.aspx?FamilyID=46bea47e-d47f-4349-9b4f-904b0a973174&displaylang=en – RMD