在 OpenHarmony(鸿蒙)应用开发中,“验证码如何加密”通常包含两层含义:
下面按常见场景给你说明。
OpenHarmony 的 @ohos.net.http 默认支持 HTTPS:
import http from '@ohos.net.http';
let req = http.createHttp();
req.request(
"https://your-api.com/sendCode",
{
method: http.RequestMethod.POST,
extraData: {
phone: "13800000000"
}
},
(err, data) => {
// 返回结果
}
);
✅ 验证码本身不需要自己加密,只要走 HTTPS:
有些金融/政企应用会要求“二次加密”。
import cryptoFramework from '@ohos.security.cryptoFramework';
async function rsaEncrypt(plainText: string, publicKeyBase64: string) {
let rsa = cryptoFramework.createAsyKeyGenerator("RSA1024|PKCS1");
let pubKey = await rsa.convertKey({
data: base64Decode(publicKeyBase64)
}, null);
let cipher = cryptoFramework.createCipher("RSA102|PKCS1");
await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, pubKey, null);
let result = await cipher.doFinal({ data: stringToUint8Array(plainText) });
return uint8ArrayToBase64(result.data);
}
✅ 适合:
let cipher = cryptoFramework.createCipher("AES128|CBC|PKCS7");
⚠️ 注意:
Asset / Keystore 管理AppStorage.set("code", "123456");
@ohos.data.preferences(普通)let store = await preferences.getPreferences(context, "secure");
await store.put("code", "123456");
import asset from '@ohos.security.asset';
asset.add({
alias: "sms_code",
data: stringToUint8Array("123456")
});
✅ 自动加密 ✅ 应用卸载即销毁
✅ 推荐方案
如果你告诉我:
我可以直接给你一套完整代码模板。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。