Dik*_*235 5 openpgp reactjs react-native openpgp.js uint8array
我正在研究用于加密和解密的React-Native-OpenPGP 。我想从我的文件夹(本地图像获取)/图像 url 中获取图像并将该图像转换为 Uint8Array 进行加密/解密。我是 React Native 的新手,无法找到更好的解决方案。链接也有帮助。需要一个过程来给出图像路径并将其转换为 Uint8Array。
此外还需要一个将图像文件转换为二进制数据以进行加密/解密的解决方案。openpgp 是否有可能提供两种方法,一种是通过 String,另一种是通过 Uint8Array 数据?
不知何故,花了一天时间后,我设法通过b64-to-blob将图像文件转换为BLOB。此附加链接帮助我做到了这一点。我是这样做的:
步骤1:从'react-native-image-base64'导入ImgToBase64;
步骤2:你必须安装npm i -S base-64(用于atob、btoa中的编码和解码)
第3步:从'base-64'导入{解码为atob,编码为btoa}
步骤4: var b64toBlob = require('b64-to-blob'); , var baseStringSample;
第 5 步:创建一个函数将图像转换为 base64
_convertImageToBaseSixFour() {
ImgToBase64.getBase64String('YOUR_IMAGE_PATH') // path to your image from local storage
.then((base64String) => {
baseStringSample = base64String,
})
.catch(err => Alert.alert('Error' + err));
}
Run Code Online (Sandbox Code Playgroud)
第6步:
// ****** CONVERT BASE64 TO BLOB ******* //
_imageToBlob(){
var byteCharacters = atob(baseStringSample);
var byteNumbers = new Array(byteCharacters.length);
for (var i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
byteArray = new Uint8Array(byteNumbers);
console.log("BYTEARRAY: " + byteArray);
}
}
Run Code Online (Sandbox Code Playgroud)
步骤7: 然后生成密钥,通过openpgp库中的UInt8Array方法进行加密和解密
步骤8: 将解密的图像转换为base64,然后将base64转换为Image,在Imageview中显示图像。
归档时间: |
|
查看次数: |
5578 次 |
最近记录: |