android - 尝试使用 exoplayer 流式传输加密视频时出错
问题描述
我一直在尝试使用 exoplayer 在我的服务器上流式传输加密视频。我弄清楚了有关自定义数据源的所有信息,它正在流式传输其他未加密的在线视频,但是当我尝试解密视频时出现错误,我只知道密码字符串(即“abc123”我也有 md5这个)我不知道我应该如何将它准确地转换为密钥,然后将它与我的密码一起使用 错误 1)当我使用密码字符串作为密钥时,我收到不支持的密钥大小错误,2)当我使用md5 作为键我得到 UnrecognizedInputFormatException
String sb="abc123";
byte []b=sb.getBytes();
mSecretKeySpec = new SecretKeySpec(b,"AES");
mIvParameterSpec = new IvParameterSpec("abc123".getBytes());
try {
mCipher = Cipher.getInstance("AES/CBC/NoPadding");
mCipher.init(Cipher.DECRYPT_MODE, mSecretKeySpec,mIvParameterSpec);
} catch (Exception e) {
System.out.println(e.getMessage()+e.getCause()+"fuckeddd");
e.printStackTrace();
}
解决方案
“abc123”不是有效的加密密钥。加密密钥是一个 16 字节的二进制值。
推荐阅读
- sql-server - 在 SSIS 中将 CSV 导入 SQL 时,我丢失了我的区域字母(波兰语)
- mysql - 过滤重复项
- office-js - 从 Outlook 任务窗格内的 react 应用程序读取 office 加载项清单文件
- sql - 使用 CASE WHEN / LAST_DAY 查询没有给出任何输出
- javascript - 当用户在特定时间JS没有输入时如何运行功能
- reactjs - 如何使其在 React JS 中工作 Material Design Bootstrap Header Component Collapsible?
- python - 根据先前的行在数据框中插入行
- postgresql - 使用 pgAdmin 在 for 循环中捕获行数
- mysql - 使用 mysql 绘制 grafana 月度汇总数据
- r - 如何阻止 R Studio 将打开的脚本标记为未保存?