如何在浏览器里面通过js使用ed25519签名
nodejs后端的crypto已经支持ed25519和ed448签名,但是浏览器里面不能直接使用nodejs的crypto模块。有个叫`crypto-browserify`的模块可以作为crypto在浏览器运行,但是`crypto-browserify`已经五六年没更新了,支持的算法非常有限。
目前比较合适的选择应该是是使用`elliptic`模块。参见:https://github.com/indutny/elliptic
TypeScript的代码例子:
import * as eee from 'elliptic'
import { logger } from './logger';export async function testenc() {try {var ed = new eee.ec('ed25519');var key = ed.genKeyPair();var msg = '1234555';var sig = key.sign(msg);var der = sig.toDER();var ret1 = key.verify(msg, der);var ret2 = key.verify(msg+'123', der);logger('', der + ' ' + ret1 + ' ' + ret2);} catch (e) {logger('', e);}
}
说明:
使用之前需要`npm i elliptic`并且确保安装的是`@types/elliptic`这个版本。
js的加密库普遍是个人维护的,安全性和稳定性都缺乏保证。有人在推动浏览器自带更多的加密函数,但是进展不佳:https://chromestatus.com/feature/4913922408710144
似乎ed448没有合适的实现。
如何在浏览器里面通过js使用ed25519签名相关推荐
- js 多个定时器_从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理(二)
作者:撒网要见鱼 https://segmentfault.com/a/1190000012925872 本文接上篇 <从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理(一)> ...
- 浅谈浏览器多进程与JS线程
引言 一直对浏览器的进程.线程的运行一无所知,经过一次的刷刷刷相关的博客之后,对其有了初步的了解,是时候该总结一波了. 进程.线程之间的关系 一个进程有一个或多个线程,线程之间共同完成进程分配下来的任 ...
- 从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理
最近发现有不少介绍JS单线程运行机制的文章,但是发现很多都仅仅是介绍某一部分的知识,而且各个地方的说法还不统一,容易造成困惑. 因此准备梳理这块知识点,结合已有的认知,基于网上的大量参考资料,从浏览器 ...
- js中当等于最小值是让代码不执行_从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理...
前言 见解有限,如有描述不当之处,请帮忙及时指出,如有错误,会及时修正. ----------超长文+多图预警,需要花费不少时间.---------- 如果看完本文后,还对进程线程傻傻分不清,不清楚浏 ...
- 原来浏览器原生支持JS Base64编码解码
原来浏览器原生支持JS Base64编码解码 转载来源:https://www.zhangxinxu.com/wordpress/2018/08/js-base64-atob-btoa-encode- ...
- 浏览器加载js的阻塞与非阻塞
这几天因项目需求,要实现一系列的js文件加载的问题,于是,就按照常规思路写了一通,悲催的是测试后发现问题重重: 为什么会有这么多问题,仔细想来还是对浏览器加载js的原理理解不透,于是我翻阅了大量的资料 ...
- ie运行不了java脚本界面_IE浏览器不能运行js JS代码失效不能运行了如何解决
IE浏览器不能运行js JS代码失效不能运行了如何解决 发布时间:2012-02-20 16:39:23 作者:佚名 我要评论 IE不能运行js,在IE浏览器js代码失效,js不能运行了怎么办 ...
- 浏览器中的js不能同步更新的解决方案
解决方案有三种,分别是: 1.清浏览器缓存 2.清服务器缓存 3.更改项目中对应的js文件名(大招) 在项目的整合过程出现了浏览器中的js和项目里面的js不是同步的.起初,由于需求变动,需要前端多传三 ...
- js引擎渲染php,主流浏览器内核及JS引擎
给大家科普一下主流浏览器 学习web前端,浏览器和编辑器是我们的好朋友 所以有必要了解浏览器的一些小知识 比如:什么是主流浏览器 主流浏览器 主流浏览器是有一定市场份额且有自己独立研发内核的浏览器 也 ...
最新文章
- java B2B2C Springcloud多租户电子商城系统-(七)高可用的分布式配置中心(Spring Cloud Config)...
- C Operator | and can also operate bool operands
- ROC曲线是通过样本点分类概率画出的 例如某一个sample预测为1概率为0.6 预测为0概率0.4这样画出来,此外如果曲线不是特别平滑的话,那么很可能存在过拟合的情况...
- asp php时间格式,ASP_asp格式化日期时间格式的代码,' ====================================== - phpStudy...
- Java编译型语言还是解释型语言
- docker 容器监控_以简便的方式监控Docker容器中的ADF应用程序
- [Unity] Perfab 和 Scene 中显示的物体局部坐标系的原点不是实际原点
- JSP学习笔记(六十二):struts2中的Lambda表达式
- 从零开始学习OpenWrt完美教程-转
- 软件测试从业者,Linux知识从入门到玩转(必读)
- python中元组的概念_初步讲解Python中的元组概念
- 计算机联锁常见的故障,计算机联锁系统常见故障及处理方法.doc
- es 修改mapping
- 职称计算机萧山考点地址,杭州各科目考点一览表(地址+考试时间+电话)
- 高数 | 【一元函数积分学】换元法和分部积分法 使用条件与细节问题
- 【愚公系列】2022年01月 攻防世界-进阶题-MISC-76(warmup)
- SpringCloud 整合 Seata
- DevOps工具链及基于k8s的DevOps环境搭建
- Ionic3 Cordova Android 6.x集成最新极光华为/小米厂商通道推送
- Arduino提高篇26—贪吃蛇游戏
热门文章
- 如何编写自己的代码库?
- (译) 在IOS中实现导入导出文档
- 当电商时代红利开始退潮,仅凭网红主播们的摇旗呐喊是不够的
- HttpClientUtil使用
- Core Temp实时监控CPU温度/内存使用率/CPU主频
- 公链vs联盟链,哈耶克与凯恩斯之争
- java控制pdf大小吗_Wicked_PDF / wkhtmltopdf不同控制器中pdf的不同字体和页面宽度大小...
- realsense相机内参获得方法
- linux高级路由与流量控制,linux高级路由与流量控制
- 江苏:研究生毕业答辩可采用远程视频方式