Код: Выделить всё
private getSHA256ChecksumFromBlobAndCacheBoth(imageBlob: Blob): Promise {
return imageBlob.arrayBuffer()
.then(arrayBuffer => crypto.subtle.digest("SHA-256", arrayBuffer))
.then(arrayBuffer => {
let SHA256Checksum: string = this.convertSHA256ChecksumToHexString(arrayBuffer);
return SHA256Checksum;
});
}
private convertSHA256ChecksumToHexString(buffer: ArrayBuffer): string {
return Array.from(new Uint8Array(buffer))
.map((byte) => byte.toString(16).padStart(2, "0"))
.join("");
}
< /code>
Это создает действительный хэш SHA-256. Вот пример одного: CE48C8F1EEBBFDFD811D2E8FBB07D7A4FA9E0AB382934D2010B336E2A2B41730 < /p>
Несмотря на то, что он действителен, он все еще переосмысливается S3; Это вызывает ошибку несоответствия подписи. Когда я удаляю фактическое значение хэш и заменяю его на беззнатную плату Подробнее здесь: https://stackoverflow.com/questions/794 ... in-angular
Мобильная версия