公钥私钥对生成器

这段 JavaScript 代码使用椭圆曲线加密生成公钥私钥对,并在浏览器中提供管理功能。

extends layout

block content
  .container

    .card
      h4.card-header 公钥 / 私钥对
      .card-body
        form.form-horizontal
          .form-group
            label.control-label(for='data') 私钥
            .input-group
              input.form-control#privateKey(aria-label='私钥', type='number')
              span.input-group-btn
                button.btn.btn-secondary#randomButton(type='button') 随机
          .form-group
            label.control-label(for='data') 公钥
            input#publicKey.form-control(disabled)

  script.
    var EC = elliptic.elliptic().ec;
    var ec = new EC('secp256k1');

    var keypair = ec.genKeyPair();
    if (Cookies.get('privateKey')) {
      keypair = ec.keyFromPrivate(Cookies.get('privateKey'));
    }

    function update() {
      var prv = keypair.getPrivate('hex');
      var pub = keypair.getPublic('hex');
      $('#privateKey').val(bigInt(prv, 16).toString());
      $('#publicKey').val(pub);
      Cookies.set('privateKey', prv.toString());
      Cookies.set('publicKey', pub.toString());
    }

    function random() {
      keypair = ec.genKeyPair();
      update();
    }

    $(function() {
      $('#randomButton').click(random);
      $('#privateKey').bind('keyup', function() {
        $('#privateKey').val($('#privateKey').val().replace(/\D/g, ''));
        keypair = ec.keyFromPrivate(bigInt($('#privateKey').val()).toString(16));
        update();
      });
      update();
    });

代码解释:

  1. 引入依赖库: 代码使用 'elliptic' 库进行椭圆曲线加密操作。
  2. 创建椭圆曲线对象: 使用 elliptic.elliptic().ec 创建一个 'secp256k1' 椭圆曲线对象。
  3. 生成或加载密钥对:
    • 使用 ec.genKeyPair() 生成新的公钥私钥对。
    • 如果浏览器 Cookies 中存在 'privateKey',则使用该私钥生成公钥私钥对。
  4. update() 函数:
    • 获取私钥和公钥的十六进制字符串表示。
    • 将十六进制字符串转换为十进制字符串,并更新到相应的表单字段中。
    • 使用 Cookies 存储私钥和公钥,以便在刷新页面时保留。
  5. random() 函数:
    • 生成新的随机公钥私钥对。
    • 调用 update() 更新表单字段和 Cookies。
  6. 事件处理:
    • 点击 '随机' 按钮时,调用 random() 生成新的密钥对。
    • 在私钥输入框中输入时,调用 update() 更新公钥和 Cookies。
  7. 初始化:
    • 在页面加载完成后,调用 update() 初始化表单字段和 Cookies。

这段代码提供了一个简单的方法,可以在浏览器中生成和管理公钥私钥对,用于各种加密和安全应用程序。

公钥私钥对生成器 - 使用 JavaScript 生成和管理密钥对

原文地址: https://www.cveoy.top/t/topic/fzWk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录