写一个加解密方法,适用于vue3和uniapp字符串加密,加密后生成的加密字符不得超过24个字符
时间: 2024-10-23 07:18:19 浏览: 49
在Vue3和UniApp中,我们可以选择使用一种常见的、轻量级的加密算法,如Base64编码,它适合处理字符串转换,并且结果长度相对可控。下面是一个简单的例子,我们将创建一个名为`encryptDecrypt`的函数,用于加解密字符串,加密后的结果最多24个字符:
```javascript
// 导入Vue3和必要的库 (如果你在Vue项目中)
import { ref } from 'vue';
// 或者在UniApp中直接使用原生JavaScript
function encryptDecrypt(text) {
// 使用Base64加密
const encryptedText = window.btoa(text);
// 如果加密后超过24个字符截断并返回
if (encryptedText.length > 24) {
return encryptedText.slice(0, 24);
}
return encryptedText;
}
// 示例使用
// Vue3
export default {
data() {
return {
originalText: '',
encryptedText: ref(''),
};
},
methods: {
onEncrypt() {
this.encryptedText.value = encryptDecrypt(this.originalText);
},
onDecrypt(encryptedInput) {
try {
this.originalText = window.atob(encryptedInput);
} catch (_) {
console.error('Decryption failed.');
}
},
},
};
// UniApp
Page({
data: {
originalText: '',
encryptedText: '',
},
methods: {
encryptText() {
this.encryptedText = encryptDecrypt(this.originalText);
},
decryptText(encryptedInput) {
try {
this.originalText = decodeURIComponent(escape(atob(encryptedInput)));
} catch (_) {
console.error('Decryption failed.');
}
},
},
});
```
在这个示例中,我们使用了`btoa`和`atob`来进行Base64的加密和解密操作。注意,由于Base64编码可能会导致加密后的字符串比原始字符串长,所以这里会截取前24个字符。
阅读全文