def sha256sum(hash,filename, block_size=65536): from hashlib import sha256 #hashlib to make our lives easier, no reason to import the whole thing sha256 = sha256() with open(filename, 'rb') as f: for block in iter(lambda: f.read(block_size), b''): sha256.update(block) if hash == sha256.hexdigest(): return True else: return False
def test_file(): try: convert() with open("sample.webp", "rb") as f: for chunk in iter(lambda: f.read(4096), b""): sha256.update(chunk) assert sha256.hexdigest() == hash except: pass
def pack_header(self): header = self.version_binary_str sha256 = hashlib.sha256() sha256.update(self.version_binary_str) checksum = sha256.digest()[:4] header = header + checksum header = header + b'\x00' * (32 - len(header)) packhash = bytearray.fromhex(self.packed_hash) header = header + packhash # signature part header = header + b'\x00' * 64 return header
def verify_page(request, uniqeId): if request.method == 'GET': if not uniqeId: return HttpResponse("Page not found") id1 = VDG_M_documentDetails.objects.filter(VGuid=uniqeId).first() if not id1: return HttpResponse("Page not found") file_url1 = id1.Fileurl hash1 = "" try: sha256 = hashlib.sha256() txt = urllib2.urlopen(file_url1).read() sha256.update(txt) hash1 = sha256.hexdigest() except urllib.error.URLError as e: return render(request, 'verify/verify.html', { 'status': False, 'failedStage': 1 }) print(hash1) if id1.Hash != hash1: return render(request, 'verify/verify.html', { 'status': False, 'failedStage': 2 }) customer_ID = id1.CustomeID unique_id = id1.VGuid created_on1 = "" return render( request, 'verify/verify.html', { 'customer_ID': customer_ID, 'unique_id': unique_id, 'hash1': hash1, 'created_on1': created_on1, 'file_url1': file_url1 })
def calculate_checksum(self, content, length = 8): sha256 = hashlib.sha256() sha256.update(content) checksum = sha256.digest()[:length] return checksum
def post(self, request,*argv, **kwargs): if request.method == 'POST': key1 = self.request.META.get('HTTP_APIKEY',None) payload1 = self.request.META.get('HTTP_PAYLOAD',None) uniqueId = self.request.data['uniqueId'] fileurl = self.request.data['fileurl'] metadata = self.request.data['metadata'] delimeter = self.request.data['delimeter'] if not uniqueId: response_data = {} response_data['returncode'] = '2' response_data['message'] = 'UniqueId not found' return HttpResponse(json.dumps(response_data), content_type="application/json") if not key1: response_data = {} response_data['returncode'] = '2' response_data['message'] = 'Apikey not found' return HttpResponse(json.dumps(response_data), content_type="application/json") if not payload1: response_data = {} response_data['returncode'] = '2' response_data['message'] = 'Payload not found' return HttpResponse(json.dumps(response_data), content_type="application/json") payload1 = payload1.lower() #que = ApiKeyToken.objects.filter(key = key1).values_list('secret_key', flat=True) que = ApiKeyToken.objects.filter(key = key1).first() if not que: response_data = {} response_data['returncode'] = '2' response_data['message'] = 'Sorry you are not authorized user!!' context = {'response_data':response_data} return HttpResponse(json.dumps(response_data), content_type="application/json") sec_key = que.secret_key secret = key1+uniqueId+fileurl+metadata+delimeter+sec_key hash_object = hashlib.sha256(str(secret).encode('utf-8')) payload = hash_object.hexdigest() if payload != payload1: response_data = {} response_data['returncode'] = '2' response_data['message'] = 'Sorry you are not authorized user...!!' context = {'response_data':response_data} return HttpResponse(json.dumps(response_data), content_type="application/json") id_get = VDG_M_documentDetails.objects.filter(VGuid = uniqueId).first() if not id_get: response_data = {} response_data['returncode'] = '2' response_data['message'] = 'UniqueId not found' context = {'response_data':response_data} return HttpResponse(json.dumps(response_data), content_type="application/json") if id_get.CustomeID !=que.user.id : response_data = {} response_data['returncode'] = '2' response_data['message'] = 'Sorry you are not authorized user...!!' context = {'response_data':response_data} return HttpResponse(json.dumps(response_data), content_type="application/json") try: sha256 = hashlib.sha256() txt = urllib2.urlopen(fileurl).read() sha256.update(txt) h2 = sha256.hexdigest() except urllib.error.URLError as e: response_data = {} response_data['returncode'] = '2' response_data['message'] = 'No such file Found.' return HttpResponse(json.dumps(response_data), content_type="application/json") id_get.Fileurl = fileurl id_get.Metadata = metadata id_get.Hash = h2 id_get.delimeter = delimeter id_get.Modified_on = datetime.datetime.now() id_get.Modified_by = que.user.id id_get.save() response_data = {} response_data['returncode'] = '1' response_data['message'] = 'Value updated successfully.' response_data['uniqueId'] = uniqueId response_data['FileHash'] = h2 return HttpResponse(json.dumps(response_data), content_type="application/json")