HarmonyOS rsa加密返回401错误

使用rsa非对称加密对网络接口参数进行加密,返回401错误

HarmonyOS
2024-12-27 17:08:26
1067浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
fox280

参考以下代码:

import display from '@ohos.display';
import cryptoFramework from '@ohos.security.cryptoFramework';
import buffer from '@ohos.buffer';


@Entry
@Component
struct DisplayTest {
  async encryptMessagePromise(publicKey: cryptoFramework.PubKey, plainText: cryptoFramework.DataBlob) {
    console.log('this is encryptMessagePromise start')
    let cipher = cryptoFramework.createCipher('RSA1024|PKCS1');
    await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, publicKey, null);
    let encryptData = await cipher.doFinal(plainText);
    console.log('this is encryptMessagePromise end')
    return encryptData;
  }

  async genKeyPairByData(pubKeyData: Uint8Array) {
    console.log('this is genKeyPairByData start')
    // let pubKeyArray = new Uint8Array([48, 89, 48, 19, 6, 7, 42, 134, 72, 206, 61, 2, 1, 6, 8, 42, 134, 72, 206, 61, 3, 1, 7, 3, 66, 0, 4, 83, 96, 142, 9, 86, 214, 126, 106, 247, 233, 92, 125, 4, 128, 138, 105, 246, 162, 215, 71, 81, 58, 202, 121, 26, 105, 211, 55, 130, 45, 236, 143, 55, 16, 248, 75, 167, 160, 167, 106, 2, 152, 243, 44, 68, 66, 0, 167, 99, 92, 235, 215, 159, 239, 28, 106, 124, 171, 34, 145, 124, 174, 57, 92]);
    // let pubKeyBlob1: cryptoFramework.DataBlob = { data: pubKeyArray };
    let pubKeyBlob: cryptoFramework.DataBlob = { data: pubKeyData };
    console.log('this is genKeyPairByData createAsyKeyGenerator start')
    let rsaGenerator = cryptoFramework.createAsyKeyGenerator('RSA1024');
    console.log('this is genKeyPairByData createAsyKeyGenerator end')
    let keyPair = await rsaGenerator.convertKey(pubKeyBlob, null);
    console.info('convertKey success');
    return keyPair;
  }

  async getRsa(message: string) {
    let pkData = new Uint8Array(buffer.from('abcdJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==', 'base64').buffer)
    let keyPair = await this.genKeyPairByData(pkData);
    let pubKey = keyPair.pubKey;
    // 把字符串按utf-8解码为Uint8Array
    let plainText: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from(message, 'utf-8').buffer) };
    let encryptText = await this.encryptMessagePromise(pubKey, plainText);
    return encryptText
  }


  build() {
    Column({space:20}){

      Text('SO₂')
        .width('100%')


      Button('Test')
        .type(ButtonType.Capsule)
        .onClick(() => {
          this.getRsa('1719467841962')

        })
        .width('50%')
      // Image($rawfile('test/background.png'))
      // .size({width:50,height:50})
    }
    .width("100%")
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.

可以参考下面代码转换Uint8Array

let pkData = new Uint8Array(buffer.from('abcdJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==', 'base64').buffer)
let tes = pkData.buffer
let sss = buffer.from(tes,0,tes.byteLength)
console.log(sss.toString('base64'))
  • 1.
  • 2.
  • 3.
  • 4.
分享
微博
QQ
微信
回复
2024-12-27 18:38:04
相关问题
请求广告返回错误401
3253浏览 • 1回复 待解决
request上传返回错误401
1557浏览 • 2回复 待解决
HarmonyOS AES加密/RSA加密问题
1062浏览 • 1回复 待解决
HarmonyOS RSA加密方式
1590浏览 • 1回复 待解决
HarmonyOS 实现RSA加密功能
1079浏览 • 1回复 待解决
HarmonyOS RSA分段加密乱码
1514浏览 • 1回复 待解决
HarmonyOS rsa加密报错
928浏览 • 1回复 待解决
HarmonyOS RSA加密失败问题
882浏览 • 1回复 待解决
HarmonyOS RSA加密算法实现
1061浏览 • 1回复 待解决
RSA NoPadding模式加密失败
2261浏览 • 1回复 待解决
HarmonyOS 请问ArkTS如何实现RSA加密
1381浏览 • 1回复 待解决
HarmonyOS RSA私钥加密公钥解密
1072浏览 • 1回复 待解决
HarmonyOS RSA加密中,公私钥问题
966浏览 • 1回复 待解决
RSA加密方法在HarmonyOS 的实现
783浏览 • 1回复 待解决
RSA 加密的具体使用方法
1115浏览 • 1回复 待解决
如何使用RSA公钥加密明文数据
1383浏览 • 1回复 待解决
RSA加密,使用自有私钥解密报错
1083浏览 • 1回复 待解决