最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

TypeScript與JavaScript項目里引入MD5校驗和

 更新時間:2022年02月23日 15:37:41   作者:華為云開發(fā)者社區(qū)  
這篇文章主要介紹了TypeScript與JavaScript項目里引入MD5校驗和,MD5校驗和可以用于驗證網(wǎng)絡(luò)文件傳輸?shù)耐暾砸约胺乐刮募蝗舜鄹?。下文我們就一起來學(xué)習(xí)TypeScript與JavaScript項目里引入MD5校驗和_MD5校驗,需要的朋友可以參考一下

一、什么是MD5校驗和?

MD5,是Message Digest Algorithm 5的縮寫,即消息摘要算法版本5。

消息摘要算法通過對所有數(shù)據(jù)提取指紋信息以實現(xiàn)數(shù)據(jù)簽名、數(shù)據(jù)完整性校驗等功能,由于其不可逆性,有時候會被用做敏感信息的加密。消息摘要算法也被稱為哈希(Hash)算法或散列算法。任何消息經(jīng)過散列函數(shù)處理后,都會獲得唯一的散列值,這一過程稱為 “消息摘要”,其散列值稱為 “數(shù)字指紋”,其算法自然就是 “消息摘要算法”了。換句話說,如果其數(shù)字指紋一致,就說明其消息是一致的。

至于MD5校驗和則是其中一種數(shù)學(xué)算法,通常是使用工具對文件計算得出的一組32 個字符的十六進制字母和數(shù)字(通過對任意長度的信息逐位進行計算,產(chǎn)生一個二進制長度為128位(十六進制長度就是32位)的 hash 值)。 這些數(shù)字是使用專用工具生成的,這些工具利用了“生成128 位(16 字節(jié))哈希值的加密哈希函數(shù)”。

MD5校驗和可以用于驗證網(wǎng)絡(luò)文件傳輸?shù)耐暾砸约胺乐刮募蝗舜鄹摹?/p>

二、MD5校驗和的優(yōu)點和漏洞

MD5 特點:

  • 穩(wěn)定、運算速度快。
  • 壓縮性:輸入任意長度的數(shù)據(jù),輸出長度固定(128 比特位)。
  • 運算不可逆:已知運算結(jié)果的情況下,無法通過逆運算得到原始字符串。
  • 高度離散:輸入的微小變化,可導(dǎo)致運算結(jié)果差異巨大。

MD5 漏洞:

隨著計算機技術(shù)的發(fā)展和計算水平的不斷提高,MD5 算法暴露出來的漏洞也越來越多。1996 年后被證實存在弱點,可以被加以破解,對于需要高度安全性的數(shù)據(jù),專家一般建議改用其他算法,如 SHA-2。2004 年,證實 MD5 算法無法防止碰撞(collision),因此不適用于安全性認(rèn)證,如 SSL 公開密鑰認(rèn)證或是數(shù)字簽名等用途。

但是對于驗證網(wǎng)絡(luò)文件傳輸?shù)耐暾砸约胺乐刮募蝗舜鄹牡墓δ?,還是綽綽有余的。

三、如何在TS項目里引入MD5校驗和?

首先我們?nèi)ロ椖康膖erminal框內(nèi),在項目目錄底下,輸入命令$npm install ts-md5 --save去下載 (命令–save會幫助npm在下載ts-md5包的時候,把所有下載下來的核心包保存到package.json文件里依賴部分里):

package.json文件里新添依賴:

npm里關(guān)于ts-md5的介紹:

然后在項目代碼里需要用到md5的地方,引入MD5文件:

import {Md5} from 'ts-md5/dist/md5';

四、MD5校驗的使用

如何去hash一些字符串內(nèi)容呢?有如下幾種用法,=>后面的是hash之后內(nèi)容的格式:

Md5.hashStr('blah blah blah') => hex:string
Md5.hashStr('blah blah blah', true) => raw:Int32Array(4)
Md5.hashAsciiStr('blah blah blah') => hex:string
Md5.hashAsciiStr('blah blah blah', true) => raw:Int32Array(4)

更復(fù)雜點的用法:

//先聲明一個Md5對象
md5 = new Md5();

// 可以鏈?zhǔn)降丶由闲枰ash的內(nèi)容
// 內(nèi)容格式可以是:字符串,Ascii字符串,Blob(Binary Large Object)即二進制類型的大對象
md5.appendStr('somestring')
? ? .appendAsciiStr('a different string')
? ? .appendByteArray(blob);

// 生成MD5-16進制字符串,然后結(jié)束md5
md5.end();

Hash一個文件(注意:我們得確認(rèn)ts-md5/dist/md5_worker.js文件是在build里面可用的,那么我們在需要的時候可以直接使用。這個文件存在的形式需要一直保持為單獨的狀態(tài)):

import {ParallelHasher} from 'ts-md5/dist/parallel_hasher';

let hasher = new ParallelHasher('/path/to/ts-md5/dist/md5_worker.js');
hasher.hash(fileBlob).then(function(result) {
? ?console.log('md5 of fileBlob is', result);
});

五、另一個npm依賴包的使用方法

我們還可以使用另一個npm里的依賴包md5-file 專門對文件進行MD5求值。

使用方法,去項目的terminal框內(nèi),在項目目錄底下,輸入命令$npm install --save md5-file去下載。

使用方法:

注:

針對JS項目里的流式下載,并不僅僅是https.get(requestUrl)下載完之后,就真的下載完了;我們還需要對const stream = fs.createWriteStream(toolsPath);這個stream常量進行檢測,看是否是finish狀態(tài)了。

當(dāng)https.get是end狀態(tài)和stream是finish狀態(tài)的時候,我們才可以說所有下載都完成了;此時才可以進行MD5值的校驗。

到此這篇關(guān)于TypeScriptJavaScript項目里引入MD5校驗和的文章就介紹到這了,更多相關(guān)TypeScript與JavaScript項目里引入MD5校驗和內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Js的Array數(shù)組對象詳解

    Js的Array數(shù)組對象詳解

    這篇文章主要針對Js的Array數(shù)組對象為大家進行詳細(xì)的講解,感興趣的小伙伴們可以參考一下
    2016-02-02
  • JavaScript使用正則表達(dá)式獲取全部分組內(nèi)容的方法示例

    JavaScript使用正則表達(dá)式獲取全部分組內(nèi)容的方法示例

    這篇文章主要介紹了JavaScript使用正則表達(dá)式獲取全部分組內(nèi)容的方法,結(jié)合實例形式分析了javascript正則匹配的相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • 微信小程序canvas分享海報功能

    微信小程序canvas分享海報功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序canvas分享海報功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • js圖片模糊切換顯示特效的方法

    js圖片模糊切換顯示特效的方法

    這篇文章主要介紹了js圖片模糊切換顯示特效的方法,涉及js操作圖片特效的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • JS使用canvas實現(xiàn)基本的截圖功能

    JS使用canvas實現(xiàn)基本的截圖功能

    這篇文章主要給大家介紹了使用JS中的canvas實現(xiàn)基本的截圖功能,文中有詳細(xì)的實現(xiàn)思路和實現(xiàn)過程,文章通過代碼示例講解的非常詳細(xì),很感興趣的同學(xué)可以參考一下
    2023-08-08
  • JS 調(diào)用微信掃一掃功能

    JS 調(diào)用微信掃一掃功能

    這篇文章主要介紹了JS 調(diào)用微信掃一掃功能,本文給大家介紹的非常詳細(xì),具有參考借鑒價值,需要的朋友參考下吧
    2016-12-12
  • 手機瀏覽器喚起微信分享(JS)

    手機瀏覽器喚起微信分享(JS)

    這篇文章主要介紹了手機瀏覽器喚起微信分享功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • JavaScript ES6解構(gòu)運算符的理解和運用

    JavaScript ES6解構(gòu)運算符的理解和運用

    在ES6屬性中新增了兩個屬性,分別是解構(gòu)和…運算符,下面這篇文章主要給大家介紹了關(guān)于JavaScript ES6解構(gòu)運算符的理解和運用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10
  • 詳解用webpack的CommonsChunkPlugin提取公共代碼的3種方式

    詳解用webpack的CommonsChunkPlugin提取公共代碼的3種方式

    本篇文章主要介紹了詳解用webpack的CommonsChunkPlugin提取公共代碼的3種方式,具有一定的參考價值,有興趣的可以了解一下
    2017-11-11
  • javascript 原型模式實現(xiàn)OOP的再研究

    javascript 原型模式實現(xiàn)OOP的再研究

    目前網(wǎng)絡(luò)上有關(guān)javascript實現(xiàn)OOP模式的方案基本上都是prototype模式,一般性的示例代碼如下
    2009-04-04

最新評論

洱源县| 吉安县| 溧阳市| 攀枝花市| 定安县| 辉南县| 金门县| 安溪县| 鸡西市| 门头沟区| 巴马| 林甸县| 梅河口市| 邢台县| 施甸县| 屏南县| 额济纳旗| 新宾| 信宜市| 卓资县| 化州市| 墨江| 永仁县| 瓦房店市| 通渭县| 玉环县| 万宁市| 油尖旺区| 沙坪坝区| 南投市| 姜堰市| 蒲江县| 平安县| 黔东| 肇州县| 莱西市| 县级市| 乌恰县| 东兴市| 班玛县| 明星|