数据安全

my.rsa

非对称加密。扫码体验:

img.jpg

注:加密与解密过程分别放置在客户端与服务端,且私钥放在服务端,私钥放在客户端易泄露将导致安全问题。

入参

名称类型必填描述
actionString使用rsa加密还是rsa解密,encrypt加密,decrypt解密
textString要处理的文本,加密为原始文本,解密为Base64编码格式文本
keyStringrsa秘钥,加密使用公钥,解密使用私钥
successFunction调用成功的回调函数
failFunction调用失败的回调函数
completeFunction调用结束的回调函数(调用成功、失败都会执行)

success返回值

名称类型描述
textString经过处理过后得到的文本,加密为Base64编码文本,解密为原始文本

错误码

error描述
10参数错误
11key错误

代码示例

  1. Page({
  2. data: {
  3. inputValue: '',
  4. outputValue: '',
  5. },
  6. onInput: function (e) {
  7. this.setData({ inputValue: e.detail.value });
  8. },
  9. onEncrypt: function () {
  10. my.rsa({
  11. action: 'encrypt',
  12. text: this.data.inputValue,
  13. //设置公钥
  14. key: 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKmi0dUSVQ04hL6GZGPMFK8+d6\n' +
  15. 'GzulagP27qSUBYxIJfE04KT+OHVeFFb6K+8nWDea5mkmZrIgp022zZVDgdWPNM62\n' +
  16. '3ouBwHlsfm2ekey8PpQxfXaj8lhM9t8rJlC4FEc0s8Qp7Q5/uYrowQbT9m6t7BFK\n' +
  17. '3egOO2xOKzLpYSqfbQIDAQAB',
  18. success: (result) => {
  19. this.setData({ outputValue: result.text });
  20. },
  21. fail(e) {
  22. my.alert({
  23. content: e.errorMessage || e.error,
  24. });
  25. },
  26. });
  27. },
  28. onDecrypt: function () {
  29. my.rsa({
  30. action: 'decrypt',
  31. text: this.data.inputValue,
  32. //设置私钥
  33. key: 'MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMqaLR1RJVDTiEvo\n' +
  34. 'ZkY8wUrz53obO6VqA/bupJQFjEgl8TTgpP44dV4UVvor7ydYN5rmaSZmsiCnTbbN\n' +
  35. 'lUOB1Y80zrbei4HAeWx+bZ6R7Lw+lDF9dqPyWEz23ysmULgURzSzxCntDn+5iujB\n' +
  36. 'BtP2bq3sEUrd6A47bE4rMulhKp9tAgMBAAECgYBjsfRLPdfn6v9hou1Y2KKg+F5K\n' +
  37. 'ZsY2AnIK+6l+sTAzfIAx7e0ir7OJZObb2eyn5rAOCB1r6RL0IH+MWaN+gZANNG9g\n' +
  38. 'pXvRgcZzFY0oqdMZDuSJjpMTj7OEUlPyoGncBfvjAg0zdt9QGAG1at9Jr3i0Xr4X\n' +
  39. '6WrFhtfVlmQUY1VsoQJBAPK2Qj/ClkZNtrSDfoD0j083LcNICqFIIGkNQ+XeuTwl\n' +
  40. '+Gq4USTyaTOEe68MHluiciQ+QKvRAUd4E1zeZRZ02ikCQQDVscINBPTtTJt1JfAo\n' +
  41. 'wRfTzA0Lvgig136xLLeQXREcgq1lzgkf+tGyUGYoy9BXsV0mOuYAT9ldja4jhJeq\n' +
  42. 'cEulAkEAuSJ5KjV9dyb0RIFAz5C8d8o5KAodwaRIxJkPv5nCZbT45j6t9qbJxDg8\n' +
  43. 'N+vghDlHI4owvl5wwVlAO8iQBy8e8QJBAJe9CVXFV0XJR/n/XnER66FxGzJjVi0f\n' +
  44. '185nOlFARI5CHG5VxxT2PUCo5mHBl8ctIj+rQvalvGs515VQ6YEVDCECQE3S0AU2\n' +
  45. 'BKyFVNtTpPiTyRUWqig4EbSXwjXdr8iBBJDLsMpdWsq7DCwv/ToBoLg+cQ4Crc5/\n5DChU8P30EjOiEo=',
  46. success: (result) => {
  47. this.setData({ outputValue: result.text });
  48. },
  49. fail(e) {
  50. my.alert({
  51. content: e.errorMessage || e.error,
  52. });
  53. },
  54. });
  55. },
  56. });

原文: https://docs.alipay.com/mini/api/data-safe