에서 플리커 API 문서 , 당신은 생성하는 문자열의 MD5 합계 찾을 필요 [api_sig]
값입니다.
문자열에서 MD5 합계를 생성하는 방법은 무엇입니까?
플리커의 예 :
끈: 000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite
MD5 합계 : a02506b31c1cd46c2e0b6380fb94eb3d
에서 플리커 API 문서 , 당신은 생성하는 문자열의 MD5 합계 찾을 필요 [api_sig]
값입니다.
문자열에서 MD5 합계를 생성하는 방법은 무엇입니까?
플리커의 예 :
끈: 000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite
MD5 합계 : a02506b31c1cd46c2e0b6380fb94eb3d
답변:
Python 2.x의 경우 python의 hashlib를 사용 하십시오.
import hashlib
m = hashlib.md5()
m.update("000005fab4534d05api_key9a0554259914a86fb9e7eb014e4e5d52permswrite")
print m.hexdigest()
산출: a02506b31c1cd46c2e0b6380fb94eb3d
m.digest_size
입니다.이 코드 위에 수행하십시오 . 내부 다이제스트는 이미 16 바이트입니다.
m.hexdigest()[:16]
다음을 수행 할 수 있습니다.
파이썬 2.x
import hashlib
print hashlib.md5("whatever your string is").hexdigest()
파이썬 3.x
import hashlib
print(hashlib.md5("whatever your string is".encode('utf-8')).hexdigest())
그러나이 경우 Flickr API와 상호 작용하기 위해이 유용한 Python 모듈을 사용하는 것이 좋습니다.
... 인증을 처리합니다.
hashlib의 공식 문서
""
)은 유니 코드이며 바이트 문자열로 인코딩해야합니다. python2의 문자열은 btyestring 또는 유니 코드 문자열로 해석 될 수 있으며 str ( ""
) 문자열을 전달하는 것은 바이트 열로 해석됩니다. 문자열에 유니 코드 문자가 있으면 예외가 발생합니다. 바이트 스트링을 인코딩하면 ASCII 문자를 그대로 유지하고 유니 코드를 올바르게 변환 할 수 있습니다
hashlib 에서 MD5 구현을 사용해 보셨습니까 ? 해싱 알고리즘은 일반적으로 텍스트 데이터가 아닌 이진 데이터에 대해 작동 하므로 해싱 전에 텍스트를 이진 데이터로 변환하는 데 사용되는 문자 인코딩에주의해야 할 수 있습니다.
해시 의 결과 는 이진 데이터입니다. Flickr의 예제가 16 진 인코딩을 사용하여 텍스트로 변환 된 것 같습니다. hexdigest
이것을 얻으려면 hashlib 의 함수를 사용하십시오 .
b
문자열 리터럴 앞에 문자를 사용할 수 있습니다 .
import hashlib
print(hashlib.md5(b"Hello MD5").hexdigest())
print(hashlib.md5("Hello MD5".encode('utf-8')).hexdigest())
밖:
e5dadf6524624f79c3127e247f04b548
e5dadf6524624f79c3127e247f04b548
당신은 시도 할 수 있습니다
#python3
import hashlib
rawdata = "put your data here"
sha = hashlib.sha256(str(rawdata).encode("utf-8")).hexdigest() #For Sha256 hash
print(sha)
mdpass = hashlib.md5(str(sha).encode("utf-8")).hexdigest() #For MD5 hash
print(mdpass)
hashlib.md5().update('your string').hexdigest()
하므로 작동하지 않습니다update()
. 한 줄 솔루션을 원한다면 Mark Longair의 답변을 사용하십시오.