return hmac.new(key, string.encode('utf-8'), hashlib.sha256).digest()
return hashlib.sha256(data.encode('utf-8')).digest()
def __init__(self,ak,sk):
self.service_name = "TLS"
self.region = "cn-beijing"
self.algorithm = "HMAC-SHA256"
self.v4Identifier = "request"
self.datetime = "20250101T000000Z"
self.request = {"headers": ["x-content-sha256","x-date"]}
def authorization(self):
cred_string = self.create_scope()
f"HMAC-SHA256 Credential={self.ak}/{cred_string}",
f"SignedHeaders={self.signed_headers()}",
f"Signature={self.signature()}"
token = ', '.join(parts)
signing_key = self.get_signing_key()
sign_str = self.get_sign_str()
return Util.hmac(signing_key,sign_str).hex()
def get_signing_key(self):
k_date = Util.hmac(f"{self.sk}".encode('utf-8'),self.datetime[:8])
k_region = Util.hmac(k_date,region)
k_service = Util.hmac(k_region,self.service_name)
sign_key = Util.hmac(k_service,self.v4Identifier)
Util.sha256(self.get_canonical_string()).hex()
def get_canonical_string(self):
"x-content-sha256:"+Util.sha256(self.body).hex(),
"x-date:" + self.datetime,
self.request["headers"][0]+";"+self.request["headers"][1],
Util.sha256(self.body).hex(),
def signed_headers(self):
headers = sorted(k.lower() for k in self.request['headers'])
return ';'.join(headers)
return '/'.join( [self.datetime[0:8], self.region, self.service_name, self.v4Identifier])
if __name__ == '__main__':
t = tlsSigners("your_ak","your_sk")
print(t.authorization())