2011-11-11 2 views
0

나는 WCF 서비스를 가지고 있으며 결과적으로 SHA1 해시 문자열을 전달하려고합니다.C에서 호출하는 자바 스크립트 함수 (args 포함) #

클라이언트 쪽에서는 자바 스크립트가있는 간단한 html 페이지가 있습니다.

자바 스크립트에서 SHA1 문자열을 만드는 코드가 있는데 클라이언트 (메시지 해쉬)와 서버 (해시 메시지) 모두에 사용하고 싶습니다.

서버가 C#입니다.

그래서, C#에서 SHA1 자바 스크립트 함수를 호출 할 수 있습니까?

+0

메시지를 "dehashing"하는 것과 같은 것은 없습니다. 해시의 핵심은 본질적으로 단방향이라는 것입니다. –

+1

'dehash the message' ???? 해시 함수는 한 가지 방법입니다. 해시 함수의 전체 목적은 주어진 입력에 대해 고유 한 해시를 갖는 것이며 해시를 제공하면이 해시를 생성하는 데 사용 된 입력을 얻을 수 없다는 것입니다. –

+0

또한 서버에서 JS 함수를 호출하는 이유는 무엇입니까? 닷넷은 이미 SHA1 알고리즘을 완벽하게 구현했다. –

답변

1

이 두 가지 이유가 이해가되지 않습니다 :

1) 당신은 정말 C# 및 JS 사이의 코드를 공유 할 수 없습니다,이 언어는 완전히 다른 목적을 위해 만든 당신이 기꺼이하지 않는 한, 상호 운용성이 없습니다 ASP .NET Web Forms 에서처럼 코드 생성 혼란을 허용하십시오. 그래도 이것은 장기간에 아파하는 DRY의 남용과 같습니다.

2) SHA1은 단방향 알고리즘이므로 인코딩 된 문자열을 해시 할 수 없습니다 (여기서는 rainbow tables을 말하지 않음). 작업에 잘못된 도구를 사용하고 있습니다.

+0

1) 반드시 그렇지는 않습니다. http://en.wikipedia.org/wiki/JScript_.NET ...하지만이 컨텍스트에서는 좋은 생각이 아닙니다. –

+0

@ Jonas하지만 브라우저에서 JScript .NET을 실행할 수 없으므로 상호 운용성 문제는 여전히 남아 있지만 이제는 JS와 JScript .NET 사이에 남아 있습니다. (사실 JScript .NET은 처음부터 죽었습니다.) –

0

HTML 페이지에 숨겨진 컨트롤을 넣고 해당 컨트롤에 해시 값을 입력하고 C#에서 해당 컨트롤에 액세스 할 수 있습니다.

0

NO! 그러나 SHA1 결과를 입력에 넣고 서버에 게시 할 수 있습니다.