点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

在 Android 上使用 Facebook Concel 对文件加密

  • 2014-01-29
  • 本文字数:747 字

    阅读完需:约 2 分钟

Facebook 将它的 Conceal 转为开源项目。Conceal 是一套用于 Android 上的文件加密和鉴权的 Java API,它使用 OpenSSL 算法的子集以及一些预先定义的选项,以便让库保持在较小的体积——目前仅有 85KB 大小。

对于比较古老的 Android 设备——从 Froyo 到 Jelly Bean——据 Facebook 表示,该库在这些设备上的性能要优于 Android 提供的原生支持。

上图中的基准测试,展示了在 Galaxy Y 终端上,对原生 Android 算法(ES-CTR-HMAC-SHA1)、Bouncycastle((AES-GCM)和 Concea 进行对比的结果 l。

Google 在 KitKat 中引入了对 OpenSSL 的支持,但是其中使用的默认密码流则“表现差强人意”——在Facebook 看来,“当使用我们的密码流(参阅 BetterCipherInputStream.java 文件)来替换它时,将使得默认实现能够与 Conceal 相媲美。”

以下代码片段展现了如何使用 Conceal 对文件进行加密:

复制代码
// 使用秘钥链和原生库的默认实现,来创建一个新的加密对象
Crypto crypto = new Crypto(
new SharedPrefsBackedKeyChain(context),
new SystemNativeCryptoLibrary());
// 检查加密功能是否可用
// 如果 Android 没有正确载入库,则此步骤可能失败
if (!crypto.isAvailable()) {
return;
}
OutputStream fileStream = new BufferedOutputStream(
new FileOutputStream(file));
// 创建输出流,当数据写入流的时候进行加密,并将加密后的数据输出到文件
OutputStream outputStream = crypto.getCipherOutputStream(
fileStream,
entity);
// 将纯文本写入其中
outputStream.write(plainText);
outputStream.close();

Conceal 可以用来加密大型文件,Facebook 用它来加密手机 / 平板电脑 SD 卡中的数据和图片。

Conceal 的 GitHub 页面上,还提供了基于 OpenSSL 构建相似库的指南

查看英文原文: Encrypting Files on Android with Facebook Conceal

2014-01-29 07:063999
用户头像

发布了 256 篇内容, 共 63.0 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

足球比赛中的数据科学

CnosDB

数据库 时序数据库 开源社区 CnosDB infra

Python:灵活的开发环境

eng八戒

Python Python自动化办公

Centos7.x部署K8S集群 (基于containerd 运行时)

蜗牛也是牛

深入理解PKI

俞凡

架构 网络安全 网络

架构实战营模块一作业

张Dave

【愚公系列】2022年12月 微信小程序-组件模板和组件样式

愚公搬代码

12月月更

mysql优化之 performance Schema常用查询sql

@下一站

MySQL 优化 12月日更 12月月更

Golong Context package

陈庆宗

Context #go

现成佛萨奇MetaForce2.0系统开发技术(源码部署)

l8l259l3365

架构实战营 - 微信业务架构图 & “学生管理系统”毕设架构设计

huiwen

架构实战营

架构实战营 1-5 学生管理系统实战随堂测验

西山薄凉

「架构实战营」

极客时间 - 运维进阶训练营 - 第六周作业

dog_brother

CDH+Kylin三部曲之一:准备工作

程序员欣宸

大数据 kylin 12月月更

Flutter — 仅用三个步骤就能帮你把文本变得炫酷!

编程的平行世界

flutter android

MongoDB源码学习:catalog与storage

云里有只猫

mongodb 源码刨析

DevOps真死了?平台工程真有用?

agnostic

DevOps 平台工程

为什么FDA和MITRE也提及SBOM ? - 解读《医疗器械网络安全区域事件准备和响应手册》

安势信息

网络安全 SCA工具 SBOM 医疗器械 安势信息

企业如何应对开源软件供应链安全问题?

安势信息

开源 开源安全 软件供应链安全 开源安全与治理 清源CleanSource SCA

踩坑之旅:配置 ROS 环境

eng八戒

机器人 ROS 移动机器人 机器人开发

深刻理解JAVA并发中的有序性问题和解决之道

JAVA旭阳

Java Java并发

bat脚本常用命令及测试

@下一站

软件开发 BAT 12月日更 12月月更

编码开发如何开展API安全实现

穿过生命散发芬芳

12月月更

2022-12-04:给定一个由 ‘[‘ ,‘]‘,‘(‘,‘)’ 组成的字符串, 请问最少插入多少个括号就能使这个字符串的所有括号左右配对, 例如当前串是 “([[])“,那么插入一个‘]‘即可满足

福大大架构师每日一题

算法 rust 福大大

架构训练营模块1作业

附加信息

架构训练营

AngularJS进阶(二十)HTML5实现获取地理位置信息并定位功能

No Silver Bullet

H5 AngularJS 12月月更 地理位置

极客时间架构训练营作业-模块一

张建闯

架构实战营

MySQL锁,锁的到底是什么?

蝉沐风

MySQL innodb MVCC

Camtasia Studio2023软件和谐版录制电脑屏幕软件

茶色酒

Camtasia Studio2023

架构实战营-模块1作业

小圆

再突破!MatrixDB 在 PostgreSQL 领域获双重大奖!

YMatrix 超融合数据库

数据库 postgresql 超融合数据库 YMatrix

架构实战营 1-6 学生管理云平台实战随堂测验

西山薄凉

「架构实战营」

在Android上使用Facebook Concel对文件加密_Java_Abel Avram_InfoQ精选文章