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);}
}

说明:

  1. 使用之前需要`npm i elliptic`并且确保安装的是`@types/elliptic`这个版本。

  1. js的加密库普遍是个人维护的,安全性和稳定性都缺乏保证。有人在推动浏览器自带更多的加密函数,但是进展不佳:https://chromestatus.com/feature/4913922408710144

  1. 似乎ed448没有合适的实现。

如何在浏览器里面通过js使用ed25519签名相关推荐

  1. js 多个定时器_从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理(二)

    作者:撒网要见鱼   https://segmentfault.com/a/1190000012925872 本文接上篇 <从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理(一)> ...

  2. 浅谈浏览器多进程与JS线程

    引言 一直对浏览器的进程.线程的运行一无所知,经过一次的刷刷刷相关的博客之后,对其有了初步的了解,是时候该总结一波了. 进程.线程之间的关系 一个进程有一个或多个线程,线程之间共同完成进程分配下来的任 ...

  3. 从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理

    最近发现有不少介绍JS单线程运行机制的文章,但是发现很多都仅仅是介绍某一部分的知识,而且各个地方的说法还不统一,容易造成困惑. 因此准备梳理这块知识点,结合已有的认知,基于网上的大量参考资料,从浏览器 ...

  4. js中当等于最小值是让代码不执行_从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理...

    前言 见解有限,如有描述不当之处,请帮忙及时指出,如有错误,会及时修正. ----------超长文+多图预警,需要花费不少时间.---------- 如果看完本文后,还对进程线程傻傻分不清,不清楚浏 ...

  5. 原来浏览器原生支持JS Base64编码解码

    原来浏览器原生支持JS Base64编码解码 转载来源:https://www.zhangxinxu.com/wordpress/2018/08/js-base64-atob-btoa-encode- ...

  6. 浏览器加载js的阻塞与非阻塞

    这几天因项目需求,要实现一系列的js文件加载的问题,于是,就按照常规思路写了一通,悲催的是测试后发现问题重重: 为什么会有这么多问题,仔细想来还是对浏览器加载js的原理理解不透,于是我翻阅了大量的资料 ...

  7. ie运行不了java脚本界面_IE浏览器不能运行js JS代码失效不能运行了如何解决

    IE浏览器不能运行js JS代码失效不能运行了如何解决 发布时间:2012-02-20 16:39:23   作者:佚名   我要评论 IE不能运行js,在IE浏览器js代码失效,js不能运行了怎么办 ...

  8. 浏览器中的js不能同步更新的解决方案

    解决方案有三种,分别是: 1.清浏览器缓存 2.清服务器缓存 3.更改项目中对应的js文件名(大招) 在项目的整合过程出现了浏览器中的js和项目里面的js不是同步的.起初,由于需求变动,需要前端多传三 ...

  9. js引擎渲染php,主流浏览器内核及JS引擎

    给大家科普一下主流浏览器 学习web前端,浏览器和编辑器是我们的好朋友 所以有必要了解浏览器的一些小知识 比如:什么是主流浏览器 主流浏览器 主流浏览器是有一定市场份额且有自己独立研发内核的浏览器 也 ...

最新文章

  1. java B2B2C Springcloud多租户电子商城系统-(七)高可用的分布式配置中心(Spring Cloud Config)...
  2. C Operator | and can also operate bool operands
  3. ROC曲线是通过样本点分类概率画出的 例如某一个sample预测为1概率为0.6 预测为0概率0.4这样画出来,此外如果曲线不是特别平滑的话,那么很可能存在过拟合的情况...
  4. asp php时间格式,ASP_asp格式化日期时间格式的代码,' ====================================== - phpStudy...
  5. Java编译型语言还是解释型语言
  6. docker 容器监控_以简便的方式监控Docker容器中的ADF应用程序
  7. [Unity] Perfab 和 Scene 中显示的物体局部坐标系的原点不是实际原点
  8. JSP学习笔记(六十二):struts2中的Lambda表达式
  9. 从零开始学习OpenWrt完美教程-转
  10. 软件测试从业者,Linux知识从入门到玩转(必读)
  11. python中元组的概念_初步讲解Python中的元组概念
  12. 计算机联锁常见的故障,计算机联锁系统常见故障及处理方法.doc
  13. es 修改mapping
  14. 职称计算机萧山考点地址,杭州各科目考点一览表(地址+考试时间+电话)
  15. 高数 | 【一元函数积分学】换元法和分部积分法 使用条件与细节问题
  16. 【愚公系列】2022年01月 攻防世界-进阶题-MISC-76(warmup)
  17. SpringCloud 整合 Seata
  18. DevOps工具链及基于k8s的DevOps环境搭建
  19. Ionic3 Cordova Android 6.x集成最新极光华为/小米厂商通道推送
  20. Arduino提高篇26—贪吃蛇游戏

热门文章

  1. 如何编写自己的代码库?
  2. (译) 在IOS中实现导入导出文档
  3. 当电商时代红利开始退潮,仅凭网红主播们的摇旗呐喊是不够的
  4. HttpClientUtil使用
  5. Core Temp实时监控CPU温度/内存使用率/CPU主频
  6. 公链vs联盟链,哈耶克与凯恩斯之争
  7. java控制pdf大小吗_Wicked_PDF / wkhtmltopdf不同控制器中pdf的不同字体和页面宽度大小...
  8. realsense相机内参获得方法
  9. linux高级路由与流量控制,linux高级路由与流量控制
  10. 江苏:研究生毕业答辩可采用远程视频方式