Diffie-Hellman密钥交换算法的JavaScript实现
来源:互联网 发布:查看应用程序端口号 编辑:程序博客网 时间:2024/05/22 14:54
Diffie-Hellman密钥交换算法的JavaScript实现
由于js语言本身对数字的支持有限,对大数的计算需要借助math.js实现,算法本身公式较简单,但是结果有趣、应用广阔。这个实现借助DH算法产生50个A和B的共享密钥组成串并比对。
<html><head><script src="https://cdn.bootcss.com/mathjs/3.16.1/math.js"></script><script>math.config({ number: 'BigNumber', precision: 64});function calc(g,n,p) { return math.eval(g + "^" + n + " mod " + p).toFixed(); };var q=19,a=15;//两个全局公开的参数,整数a是素数q的一个原根function genAB(){ var aKey="",bKey=""; for(var i=0;i<50;i++){ var aSecretKey = Math.floor(Math.random()*q);//生成用户A的密钥(随机数,小于q) var APublicKey = calc(a,aSecretKey,q);//计算A的公开密钥 var bSecretKey = Math.floor(Math.random()*q); var BPublicKey = calc(a,bSecretKey,q); var aGenKeyCode = calc(BPublicKey,aSecretKey,q);//A产生共享密钥 var bGenKeyCode = calc(APublicKey,bSecretKey,q); aKey+=aGenKeyCode;bKey+=bGenKeyCode; } document.getElementById('aText').innerText = aKey; document.getElementById('bText').innerText = bKey; document.getElementById('abResult').innerText = (aKey == bKey);}</script></head><body><div id="aText"></div><div id="bText"></div><div id="abResult"></div><button onclick="genAB()">Gen</button></body></html>
阅读全文
0 0
- Diffie-Hellman密钥交换算法的JavaScript实现
- 对Diffie-Hellman密钥交换算法实现的一点改进
- Diffie-Hellman 密钥交换算法
- Diffie-Hellman密钥交换算法
- 浅谈Diffie-Hellman密钥交换算法的使用
- Diffie-Hellman密钥交换算法的原理及程序演示
- Diffie-Hellman密钥交换
- Diffie-Hellman密钥交换
- Diffie-Hellman密钥交换
- Diffie-Hellman密钥交换
- Diffie-Hellman密钥交换算法及其优化
- Diffie–Hellman密钥交换算法
- Diffie-Hellman密钥交换算法原理
- Diffie-Hellman密钥交换算法及其优化
- pomelo学习笔记 (3) node.js 与 c 客户端 Diffie-Hellman 密钥交换算法的实现
- Diffie-Hellman密钥是如何交换的
- Diffie-Hellman算法(密钥)
- Diffie-Hellman密钥交换思想
- 2017/8/21
- HOG特征提取代码(opencv处理基本数据,c语言实现基本算法)
- 守护进程
- 寨北社区党员分享会
- Codeforces 757 C Felicity is Coming! 【STL+思维】
- Diffie-Hellman密钥交换算法的JavaScript实现
- php获取apk包信息的类
- java中使用逗号将集合拼接成字符串
- felix-启动时报错ClassNotFound
- Android日志系统第三方库------Logger
- 微信的redirect_uri参数错误解决办法
- 数据结构与算法练习(Java实现)
- windowns 常用的命令大全
- Oracle总结