HarmonyOS 异或算法

将密码sm3之后,与当前时间戳(位数不够前面补0)进行异或处理,给后台进行验证,需要提供异或算法处理

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

参考示例:

import util from '@ohos.util';

export async function xor_test() {
  let test_data = '123456'
  let key = '8888'

  let test_data_u = stringToUint8Array(test_data)
  let key_u = stringToUint8Array(key)
  let key2_u: Uint8Array = new Uint8Array();
  if (key_u.length < test_data_u.length) {
    //前面补齐0
    for (let i = 0; i < test_data_u.length - key_u.length; i++) {
      key2_u[i] = 0
    }
    for (let i = 0; i < key_u.length; i++) {
      key2_u[i] = key_u[i]
    }
  }
  console.info("====source:" + test_data)
  //异或加密
  for (let i = 0; i < test_data_u.length; i++) {
    test_data_u[i] ^= key2_u[i]
  }
  console.info("====xor encrypt:" + test_data_u)
  //异或解密
  for (let i = 0; i < test_data_u.length; i++) {
    test_data_u[i] ^= key2_u[i]
  }
  console.info("====xor decrypt:" + uint8ArrayToString(test_data_u))
}

//string转Uint8Array
function stringToUint8Array(str: string): Uint8Array {
  try {
    let textEncoder = new util.TextEncoder("utf-8");
    let array: Uint8Array = textEncoder.encodeInto(str);
    return array
  } catch (err) {
    console.error(`stringToUint8Array = ${err}`)
    return new Uint8Array()
  }
}

//Uint8Array转string
function uint8ArrayToString(arr:Uint8Array):string{
  let str = ''
  if (arr && arr.length > 0) {
    try {
      let textDecode = util.TextDecoder.create('utf-8')
      str = textDecode.decodeWithStream(arr)
    } catch (err) {
    }
  }
  return str
}

@Entry
@Component
struct Page20 {
  @State message: string = 'Hello World';
  aboutToAppear(): void {
    xor_test()
  }
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 加解密算法匹配
69浏览 • 1回复 待解决
HarmonyOS HmacSHA256算法
34浏览 • 1回复 待解决
HarmonyOS 国密算法API
455浏览 • 0回复 待解决
HarmonyOS RSA算法如何使用
349浏览 • 1回复 待解决
HarmonyOS AES加密算法demo
28浏览 • 1回复 待解决
HarmonyOS 加解密算法如何使用
64浏览 • 1回复 待解决
HarmonyOS RSA加密算法实现
36浏览 • 1回复 待解决
HarmonyOS SM2加密算法
23浏览 • 1回复 待解决
HarmonyOS 密钥库RSA算法的使用demo
41浏览 • 1回复 待解决
HarmonyOS 需要MD5加密算法
44浏览 • 1回复 待解决
HarmonyOS HmacSHA1加签算法实现
753浏览 • 1回复 待解决
HarmonyOS MD5加密算法demo
31浏览 • 1回复 待解决
加解密算法库框架使用
899浏览 • 1回复 待解决
安全加密算法代码参考
1804浏览 • 1回复 待解决
HarmonyOS HmacSHA1 加密算法 参数问题
34浏览 • 1回复 待解决
HarmonyOS中HmacSHA1加签算法实现?
135浏览 • 0回复 待解决
基于加解密算法框架的规格问题
743浏览 • 1回复 待解决