2015-01-08 3 views
3

문자열 변환에 문제가 있습니다. "TestPassword"를 SHA1 및 base64로 말하십시오. 는 http://www.online-convert.com/result/1f76972748a7d186198171e9a11e9493문자열을 SHA1 및 base64로 변환하십시오.

내가 위의 암호를 아래의 결과를 제공해야

가 :이 SHA1로 문자열을 변환 아무 문제가 없지만

hex: 6250625b226df62870ae23af8d3fac0760d71588 
HEX: 6250625B226DF62870AE23AF8D3FAC0760D71588 
h:e:x: 62:50:62:5b:22:6d:f6:28:70:ae:23:af:8d:3f:ac:07:60:d7:15:88 
base64: YlBiWyJt9ihwriOvjT+sB2DXFYg= <-- That is what I would like to achieve ... 

내가 모르는 사이트에 따르면 일반적으로

두 개의 문자를 모두 16 진수로 처리 한 다음 base64 함수에 전달해야하므로 base64로 다시 변환하는 방법을 설명합니다.

누군가가 빛을 비추거나 코드 스 니펫에 붙여 넣을 수 있습니까?

감사합니다!

+0

당신이 무엇을 요구하고 있는지 분명하지 않습니다. 문제가 정확히 무엇입니까? – marekful

+0

위의 결과를 얻기 위해 SHA1을 base64로 변환하는 방법을 모르겠습니다. – John

+0

SHA1은 더 이상 암호 해시에 권장되지 않습니다. 가능한 경우'password_hash'를 사용하십시오. – halfer

답변

10

Base64 인코딩은 16 진수 인코딩이 아닌 원시 이진 버전의 SHA1 다이제스트에 대해 수행해야합니다.

당신은 sha1() 함수의 $raw_output 매개 변수에 true를 전달하여 그 원시 버전을 얻을 수 있습니다 :

$base64 = base64_encode(sha1("TestPassword", true)); 
1

내가 생각은 늦은 반응이다하지만 난 그것을 변환 후 원시 MD5를 사용하여 해당 정확한 값을 얻을 기본 64로 :

$base64 = base64_encode(hash("md5", "myPassword", true)); 
관련 문제