30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
const sm2 = require('sm-crypto').sm2;
|
|
|
|
console.log('=== 调试 SM2 DER 格式 ===');
|
|
|
|
// 测试数据
|
|
const data = 'QDJNHHVB_FWQ';
|
|
const userId = '1234567812345678';
|
|
|
|
// 生成密钥对
|
|
const keypair = sm2.generateKeyPairHex();
|
|
console.log('公钥:', keypair.publicKey);
|
|
|
|
// 生成签名(带 der 选项)
|
|
const sigWithDer = sm2.doSignature(data, keypair.privateKey, { der: true });
|
|
console.log('\n带 DER 的签名:', sigWithDer);
|
|
console.log('带 DER 的签名长度:', sigWithDer.length);
|
|
|
|
// 生成签名(不带 der 选项)
|
|
const sigWithoutDer = sm2.doSignature(data, keypair.privateKey);
|
|
console.log('\n不带 DER 的签名:', sigWithoutDer);
|
|
console.log('不带 DER 的签名长度:', sigWithoutDer.length);
|
|
|
|
// 验证带 DER 的签名
|
|
const verifyWithDer = sm2.doVerifySignature(data, sigWithDer, keypair.publicKey, { der: true });
|
|
console.log('\n验证带 DER 的签名:', verifyWithDer);
|
|
|
|
// 验证不带 DER 的签名
|
|
const verifyWithoutDer = sm2.doVerifySignature(data, sigWithoutDer, keypair.publicKey);
|
|
console.log('验证不带 DER 的签名:', verifyWithoutDer);
|