一、简介
国密即国家密码局认定的国产密码算法。常用的主要有SM2,SM3,SM4。
SM2:椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。
SM3:消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。
SM4:对称加密,密钥长度和分组长度均为128位。
由于国际环境(与美国的关系),我们在加密领域也基本切换为国密算法。
在有些项目中,没有使用HTTPS的时候,登录的口令(用户名/密码),需要进行加密传输的需求,这时候我们就需要采用非对称加密来实现。
故: 前端采用公钥加密, 后端私钥解密。
经过多次的百度及代码验证,折腾,最终找好了合适的方案。
前端加密
前端加密js示例:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="chrome=1" />
<meta name="description" content="JavaScript implementation of SM2 Algorithm Encryption and Decryption sample." />
<!--<link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">-->
<title>SM2 Algorithm Encryption and Decryption sample</title>
<style>
textarea {
width: 100%;
}
</style>
<!-- for pkcs5pkey -->
<script src="sm2.js"></script>
<script language="JavaScript" type="text/javascript">
/**
* 生成秘钥对
*/
function doG