寫在前面
在我上一篇文章 《node 后端和瀏覽器前端,有關 RSA 非對稱加密的完整實踐, 前后端匹配的代碼演示》 中,我們使用 瀏覽器原生 Web Crypto API 實現了 RSA 的加密算法。
但是,在我之前的 《我設計的一個安全的 web 系統用戶密碼管理流程》 代碼設計中,還涉及到 hash 計算,而目前,常見的 hash 計算,就是 SHA256 了。同樣的,我們可以使用 Web Crypto API 來實現,而不必借助第三方庫。
SHA 256 的實現方法
閑言少敘,直接展示代碼:
async function SHA256 (data) {const encoder = new TextEncoder();const buffer = encoder.encode(data);const hashBuffer = await crypto.subtle.digest('SHA-256', buffer);const hashArray = Array.from(new Uint8Array(hashBuffer));return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
}
小結
我們可以看到,瀏覽器原生 Web Crypto API 可以實現 RSA 的非對稱加密,以及 SHA256 Hash 算法,當然,也支持對稱加密算法等,大家可以自己去嘗試一下。
不過需要注意的是,由于 md5、 sha1 等算法已經被證明是不安全的,因此 Web Crypto API 并沒有支持。我個人的建議是,在瀏覽器端,我們要計算 hash 的話,還是使用 sha256 吧。
以上!祝各位看官開心!我最近看了一下,我居然4年沒有寫博客了,肯定是因為我年紀大了,懈怠了。各位看官不吝嗇小手點個小贊的話,我會多多寫博文的哦!謝謝大家。