js 加密和摘要算法(base6四、md五、sha一、rsa)

< 一 > BASE64javascript

1,Base64 是網絡上最多見的用於傳輸 8Bit 字節碼的編碼方式之一,Base64就是一種基於64個可打印字符來表示二進制數據的方法html

2,首先須要一個庫 base64.js,已上傳到博客園  =>  https://blog-static.cnblogs.com/files/lovling/base64.js   使用方式以下java

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Base64加密</title>
    <script src="https://blog-static.cnblogs.com/files/lovling/base64.js"></script>
</head>
<body>
</body>
<script type="text/javascript">

    // 編碼
    var str = base64.encode("你好的女肯德基淑女劍看電視女可能大門口VM看到了吧"); console.log(str) // 解碼
 str = base64.decode(str); console.log(str) </script>
</html>

 

< 二 > MD5 和 HMAC_MD5web

1,MD5消息摘要算法(英語:MD5 Message-Digest Algorithm),一種被普遍使用的密碼散列函數,能夠產生出一個128位(16字節)的散列值(hash value),用於確保信息傳輸完整一致算法

2,首先須要引入一個庫 hmac.md5.js => https://blog-static.cnblogs.com/files/lovling/hmac.md5.js  使用方式以下安全

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>MD5簽名</title>
    <script src="https://blog-static.cnblogs.com/files/lovling/hmac.md5.js"></script>
</head>
<body>
</body>
<script type="text/javascript">
    // 不支持漢字加密, 漢字加密可能會出現異常
    var str = "hanzi"; // 十六進制輸出(經常使用)
 console.log(md5.hex(str)) // 90c374ce46fd7e089c9c5021b6438264

    // base64編碼輸出
 console.log(md5.b64(str)) // kMN0zkb9fgicnFAhtkOCZA==

    // 字符串輸出
 console.log(md5.str(str)) // ÃtÎFý~œœP!¶C‚d

    // HAMC 方式,第一個參數是祕鑰, 第二個參數是數據
 console.log(md5.hamcHex("123", str)) // c67fae40a4ff81afeaf784f2c69dc8ca
 console.log(md5.hamcB64("123", str)) // xn+uQKT/ga/q94Tyxp3Iyg==
 console.log(md5.hamcStr("123", str)) // Æ ®@¤ÿ¯ê÷„òƝÈÊ
</script>
</html>

 

< 三 > SHA1 和 HMAC_SHA1網絡

1,安全哈希算法主要適用於數字簽名標準裏面定義的數字簽名算法函數

2,首先須要引入一個庫 hmac.sha1.js => https://blog-static.cnblogs.com/files/lovling/hmac.sha1.js   使用方式以下網站

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>SHA1簽名</title>
    <script src="https://blog-static.cnblogs.com/files/lovling/hmac.sha1.js"></script>
</head>
<body>
</body>
<script type="text/javascript">
    // 不支持漢字加密, 漢字加密可能會出現異常
    var str = "eyJzY29wZSI6IndvcmtlciIsImRlYWRsaW5lIjoxNTE3MzAxNjI4fQ=="; // 十六進制輸出(經常使用)
 console.log(sha1.hex(str)); // 512dbdadb4213b2c458f5ca1d789b666c2de8da9

    // base64編碼輸出
 console.log(sha1.b64(str)); // US29rbQhOyxFj1yh14m2ZsLejak=

    // 字符串輸出
 console.log(sha1.str(str)); // Q-½­´!;,E\¡×‰¶fÂލ©

    // HAMC 方式,第一個參數是祕鑰, 第二個參數是數據
 console.log(sha1.hamcHex("123", str)); // 31038c3ff4f34acfe618c7ede17091d415404212
 console.log(sha1.hamcB64("123", str)); // MQOMP/TzSs/mGMft4XCR1BVAQhI=
 console.log(sha1.hamcStr("123", str)); // 1 Œ?ôóJÏæ Çíáp‘Ô @B 
</script>
</html>

 

< 四 > RSA ui

1,RSA加密算法是一種非對稱性算法。在公開密鑰加密和調子商業中普遍使用

2,須要須要引入一個庫 rsa.js => https://blog-static.cnblogs.com/files/lovling/rsa.js  使用方式以下

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>非對稱性加密</title>
    <script src="https://blog-static.cnblogs.com/files/lovling/rsa.js"></script>
</head>
<body>
</body>
<script type="text/javascript">
    var publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9WI8zxvqW0Q2yLq1pB5KUbYmEiU4VznAt7/y6FnSoUJaDTGDg3uB6urOmqBvcE4oS1DGURui/FGxDXsROuoKgF21KU/fXMn1tJxXRt/NkYhqFA8ZJFnynh5VGHYTafx9HJ17CCChbI0qx2qdIDBUDaMGPHENqJs5TylJqapVecQIDAQAB"; var privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAL1YjzPG+pbRDbIurWkHkpRtiYSJThXOcC3v/LoWdKhQloNMYODe4Hq6s6aoG9wTihLUMZRG6L8UbENexE66gqAXbUpT99cyfW0nFdG382RiGoUDxkkWfKeHlUYdhNp/H0cnXsIIKFsjSrHap0gMFQNowY8cQ2omzlPKUmpqlV5xAgMBAAECgYAIEQXIxulWE4Hp3WM13kS4XhJFuzPAahMNYfP6WYqOwSAoZ9CYw+X8VIfiybamIY74TmHuVzcDLPOPyzHByOBXruNK+ynU61BFMOdC7a2oR09PW3Fj8mvChtPYalzN/h2GuSD/eJ4hnZC7b3AEz4DTuaILVIae2SWqzGCJ8JYsoQJBAOLldE9FEeJZrqAsTATx8vL7KqkEwgJ7fTsLptCpThNezD8ecyO3mDUctAxvR+Iislxfy/TixuC4iyYdrBPBCAcCQQDVohJPE5ahFcLSDpSme2U+A5nrMRRMg0dnF/7SnSqYLJka49Q+4kDB8/OFSHtwlNztC3wiEF/PktrKxt6C1JfHAkEAxKQTvzefHkqXOx3o7Eg8RDVFbaI/+iLID8ozUpfIoKUB4pojM4tEEJPFvxkadXOYnNIxUxTPQ6bsgaYpoh0jNQJARqycY/61+UqKrhVWxhDSeIaWeAE/luRjTc7ZZXHLMpamfAfdIoSVKdT7vh8xfxgwUldXVKmYGMKbkTPjTuLn5wJAaLMytE0yg+E+uyf1UgCWMfmMLmHPmGIvw9i9eIx35w8JVG5wHFM8wo1v26CWq9Y5x6n3qP36Yyqsg4ahRuRn4A=="

    // 設置公鑰
 rsa.setPublicKey(publicKey); // 設置私鑰
 rsa.setPrivateKey(privateKey); var str = "這是一個字符串"; // 加密
 str = rsa.encrypt(str); console.log(str); // 解密
 str = rsa.decrypt(str); console.log(str) </script>
</html>

3,關於公鑰和私鑰的生成方式,能夠在該網站實現 => http://web.chacuo.net/netrsakeypair

相關文章
相關標籤/搜索