uni-app uts字符串BASE64加解密插件

发布于 1周前 作者 gougou168 来自 Uni-App

uni-app uts字符串BASE64加解密插件

H5,安卓,ios下通用的可以在uni-app-x下使用的字符串base64加解密插件

1 回复

在uni-app中,如果你需要处理字符串的BASE64加解密操作,可以通过编写一个自定义插件或者利用JavaScript内置的btoaatob函数来实现。不过需要注意的是,btoaatob仅支持对UTF-8编码的字符串进行BASE64编码和解码,对于非UTF-8编码的字符串(如包含中文字符的字符串),需要先将其转换为UTF-8编码的字节数组再进行操作。

以下是一个简单的uni-app插件示例,用于处理字符串的BASE64加解密。这个插件包含两个方法:encode用于加密,decode用于解密。

首先,创建一个名为base64Utils.js的文件,并在其中编写以下代码:

// base64Utils.js
export default {
    encode(input) {
        // 将字符串转换为UTF-8编码的字节数组
        let utf8Encoder = new TextEncoder('utf-8');
        let utf8Bytes = utf8Encoder.encode(input);
        
        // 创建一个临时的Uint8Array视图,并将字节数组复制到其中
        let binary = '';
        let len = utf8Bytes.byteLength;
        let bytes = new Uint8Array(len);
        for (let i = 0; i < len; i++) {
            bytes[i] = utf8Bytes[i];
        }
        
        // 将字节数组转换为二进制字符串,再进行BASE64编码
        binary += String.fromCharCode.apply(null, bytes);
        return btoa(binary);
    },
    
    decode(output) {
        // 对BASE64编码的字符串进行解码,得到二进制字符串
        let binary = atob(output);
        
        // 将二进制字符串转换为字节数组
        let len = binary.length;
        let bytes = new Uint8Array(len);
        for (let i = 0; i < len; i++) {
            bytes[i] = binary.charCodeAt(i);
        }
        
        // 将字节数组转换为UTF-8编码的字符串
        let utf8Decoder = new TextDecoder('utf-8');
        return utf8Decoder.decode(bytes);
    }
};

然后,在你的uni-app项目中,你可以这样使用这个插件:

// 在你的页面或组件中引入base64Utils插件
import base64Utils from '@/utils/base64Utils.js';

// 使用encode方法进行加密
let encrypted = base64Utils.encode('你好,世界!');
console.log('加密后的字符串:', encrypted);

// 使用decode方法进行解密
let decrypted = base64Utils.decode(encrypted);
console.log('解密后的字符串:', decrypted);

这个插件示例展示了如何在uni-app中进行BASE64加解密操作,同时处理了UTF-8编码的问题。你可以根据实际需求对插件进行扩展和优化。

回到顶部