前端md5加密

md5加密

MD5(单项散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。

MD5功能:

  • 输入任意长度的信息,经过处理,输出32位的信息;

  • 不同的输入得到的不同的结果(唯一性)

  • 根据32位的输入结果不可能反推出输入的信息(不可逆)

MD5用途:

  1. 防止被篡改,发布文件时同时发布文件的MD5值,在对方收到文件后再次进行MD5计算,最终获得的结果一样,说明未被篡改。

  2. 防止直接看到明文,这也是它最常见的用途,经常在某些页面点击提交后,密码就通过md5加密,直接由几位密码突然填满了密码框

  3. 作为数字签名。

MD5算法过程:

MD5算法详解

MD5安全性:

MD5是不可能逆向的

目前网上存在一些破解方法,主要是通过穷举法。

将原文和加密后的MD5一一对应存入字典中,将已知的MD5反查表推算出原文,以空间换时间。

一个采用穷举法破解MD5加密的网站

前端如何使用MD5算法:

原理:

用户提交表单时,拦截表单,将密码进行MD5加密,加密后再进行提交。

MD5算法的cdn:


<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Documenttitle>
    <script src="https://cdn.bootcdn.net/ajax/libs/blueimp-md5/2.18.0/js/md5.min.js">script>
head>
<body>
    <form action="#" method="post" onsubmit="return check()">
        <p>
            <span>用户名:span><input type="text" value="user" name="userName" id="userName">
        p>
        <p>
            <span>密码:span><input type="password" name="userPassword" id="userPassword">
        p>
        <button type="submit">提交button>
    form>
    <script>
        // 通过check()拦截表单提交,经过MD5加密后在进行提交
        var check = function(){
      
            var name = document.getElementById("userName");
            var password = document.getElementById("userPassword");
            console.log(password.value)
            password.value = md5(password.value);
            console.log(password.value)
            return true;
        }
    script>
body>
html>

你可能感兴趣的:(前端,JavaScript)