RSA NoPadding模式加密失败
RSA使用PKCS1模式可以正常加解密,使用NoPadding模式调用cipher.doFinal(plainText)加密数据抛出异常,无法正常使用。下面是示例代码:可在IDE中直接运行
import { cryptoFramework } from '@kit.CryptoArchitectureKit';
import { buffer } from '@kit.ArkTS';
export class RSA {
static async testPKCS1() {
let rsaGenerator = cryptoFramework.createAsyKeyGenerator('RSA1024');
// 使用密钥生成器随机生成非对称密钥对
let keypair = await rsaGenerator.generateKeyPair();
let pubkey = keypair.pubKey
let prikey = keypair.priKey
let message = "hello world"
let plainText: cryptoFramework.DataBlob = {data: new Uint8Array(buffer.from(message, "utf-8").buffer)}
//加密
let cipher = cryptoFramework.createCipher('RSA1024|PKCS1');
await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, pubkey, null);
let encryptData = await cipher.doFinal(plainText);
//解密
let decoder = cryptoFramework.createCipher('RSA1024|PKCS1');
await decoder.init(cryptoFramework.CryptoMode.DECRYPT_MODE, prikey, null);
let decryptData = await decoder.doFinal(encryptData);
let messageDecrypted = buffer.from(decryptData.data).toString("utf-8")
return messageDecrypted
console.log(messageDecrypted)
}
static async testNoPadding() {
let rsaGenerator = cryptoFramework.createAsyKeyGenerator('RSA1024');
// 使用密钥生成器随机生成非对称密钥对
let keypair = await rsaGenerator.generateKeyPair();
let pubkey = keypair.pubKey
let prikey = keypair.priKey
let message = "hello world"
let plainText: cryptoFramework.DataBlob = {data: new Uint8Array(buffer.from(message, "utf-8").buffer)}
//加密
let cipher = cryptoFramework.createCipher('RSA1024|NoPadding');
await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, pubkey, null);
let encryptData = await cipher.doFinal(plainText);
//解密
let decoder = cryptoFramework.createCipher('RSA1024|NoPadding');
await decoder.init(cryptoFramework.CryptoMode.DECRYPT_MODE, prikey, null);
let decryptData = await decoder.doFinal(encryptData);
let messageDecrypted = buffer.from(decryptData.data).toString("utf-8")
return messageDecrypted
console.log(messageDecrypted)
}
}
应用安全
HarmonyOS NEXT
赞
收藏 0
回答 1
待解决
相关问题
CryptoFramework是否支持“RSA ECB pkcs1padding”加密模式
1983浏览 • 3回复 待解决
HarmonyOS RSA加密方式
370浏览 • 1回复 待解决
HarmonyOS RSA分段加密乱码
367浏览 • 1回复 待解决
HarmonyOS 实现RSA加密功能
384浏览 • 1回复 待解决
HarmonyOS 请问ArkTS如何实现RSA加密?
272浏览 • 1回复 待解决
如何使用RSA公钥加密明文数据
274浏览 • 1回复 待解决
ArkTS版本如何实现RSA分段加密与解密?
2182浏览 • 0回复 待解决
rsa加密公钥convertKey异常:401 invalid param
1960浏览 • 1回复 待解决
RSA非对称加密-@hms-security/agoh-crypto
369浏览 • 1回复 待解决
cryptoFramework是否支持RSA的私钥加密,公钥解密
633浏览 • 1回复 待解决
HarmonyOS 是否有系统级同步的AES和RSA加密方法
267浏览 • 1回复 待解决
RSA 加密实践问题。将java中RSA加密代码翻译成 arkts 代码时,无法确定正确的API。希望提供正确的arkts代码
626浏览 • 1回复 待解决
生成随机数并用RSA加密后进行编码的转换
644浏览 • 1回复 待解决
如何实现RSA的公钥PK加密一段文字
420浏览 • 1回复 待解决
ohos.security.cryptoFramework框架下的RSA分段加密,doFinal函数401异常
272浏览 • 1回复 待解决
是否有AES的ECB模式的加密算法
440浏览 • 1回复 待解决
如何使用服务端下发的RSA公钥(字符串)对明文数据进行加密
1795浏览 • 1回复 待解决
Java中通过证书公钥 进行RSA/None/PKCS1Padding加密,在HarmonyOS中有对应的方式吗
204浏览 • 1回复 待解决
HarmonyOS RSA解密问题
290浏览 • 1回复 待解决
HUKS的RSA加解密,关于RSA加解密的代码示例
762浏览 • 1回复 待解决
HarmonyOS AES加密CBC模式中IV的实现,ArkTS和C++怎么对应上
329浏览 • 1回复 待解决
HarmonyOS RSA算法如何使用
187浏览 • 1回复 待解决
HarmonyOS 系统的加密库怎么使用MD5加密
296浏览 • 1回复 待解决
当加密内容中包含中文时,加密结果与Java侧加密结果不同。
452浏览 • 1回复 待解决
RSA导入外部密钥实现加解密
650浏览 • 1回复 待解决
NoPadding:不带填充,输入的数据必须与RSA钥模(即RSA模数n的字节长度)一样长;输出数据长度与RSA钥模一样长。
参考文档:非对称密钥加解密算法规格