2012-11-27 2 views
0

저는 C#에서 문자열을 암호화하고 이것을 PHP 페이지로 보내고 있습니다.PHP에서 .net encypted 문자열을 해독하는 방법

sfplr.Attributes.Add("href", "http://sml.com.pk/a/sfpl/reports.php?id=" + Convert.ToBase64String(Encoding.Unicode.GetBytes(emailid))); 

이 코드에서 genrated있는 URL은

http://sml.com.pk/a/sfpl/reports.php?id=bQBhAGwAaQBrAC4AYQBkAGUAZQBsAEAAcwBoAGEAawBhAHIAZwBhAG4AagAuAGMAbwBtAC4AcABrAA== 

는 이제 PHP에서 PHP는 O를 디스플레이에 다시 bQBhAGwAaQBrAC4AYQBkAGUAZQBsAEAAcwBoAGEAawBhAHIAZwBhAG4AagAuAGMAbwBtAC4AcABrAA== decrpyt 할이 어느 한이

을 수행하는 데 도움이 page.Please 같다
+7

Base64 인코딩! = 암호화. – tjameson

+0

Malik, 전자 메일은 암호화되지 않으므로 일반 텍스트로 보낼 수 있습니다 (어쩌면 url 인코딩을 사용하므로 URL에 넣어도 안전합니다) – SWeko

답변

2

참조 http://php.net/manual/en/function.base64-decode.php base64_decode 기능

를 사용하여 시도 귀하의 경우에는

, 그것은 것입니다 :

<?php  
    echo base64_decode($_GET['id']); 
?> 
+0

및 asp.net 페이지에서 쿼리 문자열을 가져 오는 방법은 무엇입니까? – user1820339

+0

@ user1820339 내 답변을 수정했습니다. –

+0

예. 감사합니다. 5 분 정도 기다려주십시오. – user1820339

2
$email = base64_decode("bQBhAGwAaQBrAC4AYQBkAGUAZQBsAEAAcwBoAGEAawBhAHIAZwBhAG4AagAuAGMAbwBtAC4AcABrAA=="); 
echo $email; //****** You will get email here... */ 

당신이 원래 convert.toBase64String에 전달 된 바이트를 반환합니다 base64_decode 기능을 사용 Is "convert.tobase64string" in .Net equal to "base64_encode" in PHP?

0

을 참조하십시오. 그 후

다음과 같은 방법으로 그들을 retreive해야합니다 :

이 올바르게 직렬화 된 경우, 반환
<?php $emailBytes = base64_decode($_GET['id']); ?> 

, 당신은 Convert.toBase64String를 사용하여 C#으로 만든 배열, 참조 Encoding.getBytes. 당신이 할 예상대로 배열

$msg = ""; 
foreach ($emailBytes as $character) { 
    $msg .= (char) $character; 
} 

(I 의심되는) 전달되는 경우

의미, 내가, 당신도 Encoding.getBytes 필요 의심 할 수 있습니다 단지 인수로 문자열 과거.

C#을 사용

Convert.ToBase64String(emailid); 

에서

그리고 당신은 PHP에서해야 할 것 모두가 당신에게 원래 전달 된 문자열을 줄 것이다 처음 언급 한 방법에 검색입니다.

또한 지적한대로 여러 번 암호화가 수행되므로 충돌이 발생하지 않는 방식으로 URL에 전달할 수 있습니다.

암호화하려면 C# 쪽에서 라이브러리를 사용하고 메시지를 인코딩하고 base64로 인코딩합니다. 그렇다면 PHP 쪽에서 당신은 그 반대를해야 할 것입니다.

관련 문제