Conceal - 用于Android上的文件加密和鉴权的Java API

jopen 10年前

Conceal是一套用于Android上的文件加密和鉴权的Java API,Conceal的加密算法基于OpenSSL,但是在arm7下的OpenSSL库大小有1MB,我们缩减了OpenSLL库的内容,经过编译现在他只有85KB。一个更小的库,有益于兼容更多的android版本,以及减少后期的维护成本。

Conceal比目前的任何一个java加密库都轻巧快捷,同时它使用AES-GCM算法,来防止对数据进行的恶意篡改。

这个库还提供了存储和管理秘钥的资源来提高android脆弱的随机数生成器的安全性。目前正式支持,2.3以及更高版本。不过也可以在2.2版本运行。

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


以下代码片段展现了如何使用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();

项目主页:http://www.open-open.com/lib/view/home/1394779937806