我正在研究反应本性 - openpgp以进行加密和解密。我想从文件夹(本地图像获取)/图像URL中获取图像,然后将该图像转换为uint8array进行加密/解密。我是新手反应天然的,找不到更好的解决方案。链接也可以提供帮助。需要一个过程来提供图像路径并将其转换为UINT8Array。
此外,还需要一个解决方案,将图像文件转换为二进制数据以进行加密/解密。是否有可能因为OpenPGP提供了两种方法,该方法是通过字符串进行的,而另一种是通过Uint8array数据?
在上面度过一天后,我设法将图像文件转换为 blob 通过b64-to-blob。这个附带的链接帮助我这样做。我以这种方式完成了此操作:
步骤1:从'react-native-image-base64';
导入imgtobase64;步骤2:您必须安装npm i -s base -64(用于ATOB中的编码和解码,BTOA)
步骤3:导入{decode as at at as atob,从'base-64'
编码为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));
}
步骤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);
}
}
步骤7:然后生成的键,通过openPGP库中的uint8array方法进行了加密和解密
步骤8:将解密的图像转换为base64,然后将base64转换为图像,在图像视图中显示图像。