HarmonyOS 怎么使用字符串类型的私钥加签(算法:RSA1024+SHA1)

这是对应的JS代码,使用jsrsasign库进行加签

import { hex2b64, KJUR } from 'jsrsasign'

const RSA = new KJUR.crypto.Signature({
  alg: 'SHA1withRSA',
  prov: 'cryptojs/jsrsa',
  prvkeypem: PRIVATE_KEY,
})
let sign = '加密内容'
RSA.updateString(sign)
sign = RSA.sign()
sign = hex2b64(sign)
console.log('sign: ', sign)

想实现一个HarmonyOS版本的RSA+SHA1加签,问题在密钥传不进去,代码如下:

let signer = cryptoFramework.createSign("RSA1024");
signner.init(prikey)

这个prikey是本地的字符串类型的私钥,不需要密钥生成器生成一个keyPair对象,怎么直接使用本地的字符串私钥加签,省略掉文档里描述的那样繁琐的流程

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

字符串类型的私钥必须要使用 rsaGenerator.convertKey 进行转录 转录demo如下

// 生成RSA密钥对
async function genKeyPairByData(pubKeyData: Uint8Array, priKeyData: Uint8Array) {
  let pubKeyBlob: cryptoFramework.DataBlob = { data: pubKeyData };
  let priKeyBlob: cryptoFramework.DataBlob = { data: priKeyData };
  let rsaGenerator = cryptoFramework.createAsyKeyGenerator('RSA1024');
  let keyPair = await rsaGenerator.convertKey(pubKeyBlob, priKeyBlob);
  console.info('convertKey success');
  return keyPair;
}

公私密钥进行转码的demo实例如下:

let pkData = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0Sgj+kjeK4GQP5nCxHryVNNpPQXEtidEJ1zDfZlrHSKuBpqC6DybMi7hwqQ13WP/E3jmxxx1o3hIlAuAXgNsChutFiRoKpAuQKQY9y4YchvYbDu9zg+vuOaKYinufY1l7p9kDhbozXM9fHKyXju7kZvYDG5T9VATYmQp9CwJTbAXqPz0/o+GJkCkbH1mXUH0kzQHRwXJ68ReqcmlTfe/ThIebSGA/eOvZwa7a3ahCeNJW+8jPfH24WREQ18+gUXIT7T9SU2s6iMpn4Q8yPOG5bdf9qhV1Ws33LVBExCVwoDOZFnJowB3dX3kk8m4LGM6wCA3DoDbtcr+CMWOccTchwIDAQSB";
let skData = "";

let base64 = new util.Base64Helper();
let base64pkData = base64.decodeSync(pkData );
let base64skData = base64.decodeSync(skData );
let keyPair = await genKeyPairByData(base64pkData, base64skData );
let pubKey = keyPair.pubKey;
let priKey = keyPair.priKey;

分享
微博
QQ
微信
回复
2天前
相关问题
关于私钥SHA256方法
190浏览 • 1回复 待解决
HarmonyOS HmacSHA1算法实现
736浏览 • 1回复 待解决
HarmonyOS字符串SHA-1开发问题
443浏览 • 1回复 待解决
签名验算法不支持RSA|PKCS8|SHA1
260浏览 • 1回复 待解决
HarmonyOS 字符串怎么手动换行?
726浏览 • 1回复 待解决
HarmonyOS中HmacSHA1算法实现?
120浏览 • 0回复 待解决
HarmonyOS SM2返回Base64字符串
36浏览 • 1回复 待解决
HarmonyOS SM2SM3摘要算法使用
490浏览 • 1回复 待解决
HarmonyOS string类型字符串截取
614浏览 • 1回复 待解决
ResourceStr 类型如何转成字符串
258浏览 • 1回复 待解决
检查字符串是否以给定字符串开头
535浏览 • 1回复 待解决
PixelMap类型怎么转换成Base64字符串
634浏览 • 1回复 待解决
HarmonyOS RSA算法如何使用
342浏览 • 1回复 待解决
检查字符串是否以给定字符串结尾
422浏览 • 1回复 待解决