Android:Changes to the SecretKeyFactory API in Android 4.4

http://android-developers.blogspot.com/2013/12/changes-to-secretkeyfactory-api-in.html

Changes to the SecretKeyFactory API in Android 4.4

Posted by Trevor Johns, Android Developer Relations team

random_droid

In order to encrypt data, you need two things: some data to encrypt and an encryption key. The encryption key is typically a 128- or 256-bit integer. However, most people would rather use a short passphrase instead of a remembering a 78-digit number, so Android provides a way to generate an encryption key from ASCII text inside of javax.crypto.SecretKeyFactory.

Beginning with Android 4.4 KitKat, we’ve made a subtle change to the behavior of SecretKeyFactory. This change may break some applications that use symmetric encryption and meet all of the following conditions:

  1. Use SecretKeyFactory to generate symmetric keys, and
  2. Use PBKDF2WithHmacSHA1 as their key generation algorithm for SecretKeyFactory, and
  3. Allow Unicode input for passphrases

Specifically, PBKDF2WithHmacSHA1 only looks at the lower 8 bits of Java characters in passphrases on devices running Android 4.3 or below. Beginning with Android 4.4, we have changed this implementation to use all available bits in Unicode characters, in compliance with recommendations in PCKS #5.

Users using only ASCII characters in passphrases will see no difference. However, passphrases using higher-order Unicode characters will result in a different key being generated on devices running Android 4.4 and later.

For backward compatibility, we have added a new key generation algorithm which preserves the old behavior: PBKDF2WithHmacSHA1And8bit. Applications that need to preserve compatibility with older platform versions (pre API 19) and meet the conditions above can make use of this code:

import android.os.Build;
 
SecretKeyFactory factory;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
   // Use compatibility key factory -- only uses lower 8-bits of passphrase chars
   factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1And8bit");
} else {
   // Traditional key factory. Will use lower 8-bits of passphrase chars on
   // older Android versions (API level 18 and lower) and all available bits
   // on KitKat and newer (API level 19 and higher).
   factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
}
资源下载链接为: https://pan.quark.cn/s/502b0f9d0e26 在当下互联网蓬勃发展的时代,流媒体技术已然成为多媒体内容传播与分享的关键手段,而 m3u8 格式凭借其基于 HTTP Live Streaming (HLS) 的特性,在在线视频、直播等诸多领域被广泛应用。不过,普通用户若想把 m3u8 链接下载下来,再转换成像 MP4 这样的本地离线观看文件,往往离不开一款专业的工具——m3u8 下载器。本文将深入剖析 m3u8 下载器的功能特点,以及其如何助力用户实现多任务下载、突破速度限制、将 ts 文件合并为 MP4 格式,还有处理加密视频等诸多功能。 m3u8 下载器核心功能是能从 m3u8 播放列表里解析出 TS 分片文件,并进行批量下载。TS 即传输流,是流媒体传输中常见的数据包形式。该下载器支持多任务下载,用户可同时操作多个 m3u8 链接,对于有大量视频下载需求的用户而言,这大大提升了下载效率。而且,m3u8 下载器在合法合规的前提下,通过优化下载策略,突破了常规网络环境下部分网站对下载速度的限制,让用户能更快速地获取所需多媒体资源。 此外,m3u8 下载器还能把 TS 文件合并成 MP4 文件。TS 文件是流媒体数据的片段,MP4 则是一种通用且便于存储、播放的格式。下载器会自动按顺序将所有 TS 文件合并,生成完整的 MP4 文件,极大简化了用户操作。更关键的是,它支持处理采用 AES-128-CBC 加密的 TS 文件。AES 是广泛使用的加密标准,CBC 是其工作模式之一,对于这类加密的 m3u8 视频,下载器能自动识别并解密,保障用户正常下载、播放加密内容。 m3u8 下载器还对错误进行了修正,优化了性能,有效解决了下载中断等问题,确保下载过程稳定。同时,软件在设计时将安全性作为重点,注重保护用户隐私,规避下载过程中的安全风
资源下载链接为: https://pan.quark.cn/s/27aaeeaf622d R语言是一种开源编程语言,广泛应用于统计分析、数据挖掘、机器学习和图形绘制等领域,凭借其强大的数据处理能力和丰富的统计分析库而受到广泛欢迎。R-4.2.2-win.zip是专为Windows系统设计的R语言安装包,包含了在Windows环境下运行R所需的所有组件。以下是R语言的安装过程: 下载:从R官方网站或镜像站点下载Windows版本的安装包,例如R-4.2.2-win.zip。该zip文件中通常包含一个可执行的安装程序,如R-4.2.2-win.exe。 解压:使用解压缩工具(如WinRAR或7-Zip)解压R-4.2.2-win.zip文件,以释放出R的安装程序R-4.2.2-win.exe。 运行安装程序:双击R-4.2.2-win.exe启动安装过程。安装向导会引导用户完成安装步骤,包括选择安装路径、设置环境变量以及选择安装类型(默认、最小化或自定义)。 配置环境:在安装过程中,用户可以选择是否将R添加到系统路径,以便在命令行中直接运行R。此外,还可以选择安装集成开发环境(IDE),如RStudio,以提升编程体验。 安装依赖库:R语言的强大之处在于其丰富的第三方包。在初次启动R时,用户可能需要通过install.packages()函数安装一些常用包,例如用于数据可视化的ggplot2、用于数据操作的dplyr和用于数据整理的tidyr等。 验证安装:安装完成后,启动R Console或RStudio,并输入sessionInfo()命令,以查看当前R版本和其他相关信息,从而确认安装成功。 更新与维护:R语言会定期更新,以修复问题并引入新功能。用户可以通过R Console中的update.packages()命令更新R及其包,确保始终使用最新版本。 学习资源:初学者可以
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值