我对密码学几乎一无所知,但我想弄清楚如何加密HTTP直播流并在iphone上解密.
HTTP加密的苹果文档内容如下:
////////////////////////////
包含流段的媒体文件可以单独加密.使用加密时,对索引文件中会出现对相应密钥文件的引用,以便客户端可以检索密钥以进行解密.
当索引文件中列出密钥文件时,密钥文件包含密码密钥,该密钥必须用于解密索引文件中列出的后续媒体文件.目前,HTTP Live Streaming支持使用16个八位字节密钥进行AES-128加密.密钥文件的格式是二进制格式的这16个八位字节的打包数组.
Apple提供的媒体流分段器提供加密,并支持三种配置加密的模式.
第一种模式允许您指定磁盘上现有密钥文件的路径.在此模式下,分段器将现有密钥文件的URL插入索引文件中.它使用此密钥加密所有媒体文件.
第二种模式指示分段器生成随机密钥文件,将其保存在指定位置,并在索引文件中引用它.使用此随机生成的密钥加密所有媒体文件.
第三种模式指示分段器生成随机密钥文件,将其保存在指定位置,在索引文件中引用它,然后每n个文件重新生成并引用一个新的密钥文件.此模式称为键旋转.每组n个文件使用不同的密钥加密.
您可以使用HTTP或HTTPS提供密钥文件.您还可以选择使用自己的基于会话的身份验证方案来保护密钥文件的传递.
/////////////////////////////////////////
使用加密方法1,这是我认为我需要做的:
谁能帮助解除雾气?
谢谢!!!!
我想为我的开发团队设置一个ROWE:仅结果工作环境.
基本上,只要工作完成,人们就会在他们想要的时候工作.这种环境对百思买来说是一个巨大的成功:提高生产力和减少营业额.
有没有人有任何关于为开发团队做这项工作的建议?
编辑:
更多细节:我将领导一个由其他3位经验丰富的开发人员组成的团队.我计划标准化基本流程,例如版本控制,错误跟踪,代码审查,计划,测试等."他们想要工作的方式"更多是指他们如何管理他们的时间:即安排会议,配对编程.
我是一个小团队(其他2名程序员)的高级成员.我们都是公司的新手,我一直在设置所有的开发基础设施.到目前为止,我有一个出色的版本控制系统(Git),一个出色的问题跟踪系统(Redmine),我即将建立一个构建环境(Hudson).我现在正在考虑建立我们的质量保证部门.我想建立一个像Scrum一样的敏捷开发流程,但这还没有成功.那么,我如何开始质量保证问题呢?根据计划,报告结果,制定测试计划的良好流程是什么?有没有用于组织和运行QA的工具?
谢谢!
我需要在c#client-server配置上运行一些验证测试.是否有我的客户端应用程序可以运行的动态脚本语言,它可以完全访问其所有C#类和asssemblies?
类似于Java的beanhell:http://www.beanshell.org/intro.html
谢谢!
我正在运行msysgit 1.7.3.1.如果我运行stash apply,并且存在冲突,我的所有存储更改都会暂停.这是正确的行为吗?我发现它有点令人惊讶.
另一个问题:如果我存储了10个文件,并且其中一个文件存在冲突,则会在存在冲突时存储应用中止,或者是否应用所有非冲突文件.
最后,如果我执行以下操作:
git stash
git pull
git stash apply
Run Code Online (Sandbox Code Playgroud)
另一个开发人员删除了我藏匿的文件,然后我无法在此文件上应用存储.如何从藏匿处检索我的更改?
谢谢!
在某些条件下,我希望我的 post-receive hook 负责更新 repo 本身中的版本文件。因此,假设我的存储库中有一个文件 version.txt,我希望 post 接收挂钩更新 version.txt 中的版本字符串。
这将意味着再次推动回购。这可能吗?
谢谢!
我有一个工作文件夹,其中包含许多文件更改和许多已删除的文件。我想将所有已删除的文件重置到当前 HEAD,并保留任何已修改的文件。我怎样才能做到这一点?
如果我想用另一个分支中的同一文件夹替换工作分支上的文件夹,我可以调用:
git checkout OTHER_BRANCH -- /path/to/folder
Run Code Online (Sandbox Code Playgroud)
是什么意思 - ?
我的工作流程具有自动打包和上传步骤,用于打包构建工件并将其上传到工作流程页面。我还手动创建版本。
我想执行以下操作:当我推送到使用给定版本创建的标签时,我想将压缩的工件文件上传到该版本,以便用户可以下载该工件。有关如何执行此操作的任何提示?
这是我的构建 yaml文件。
谢谢!
我想在编译时生成各种位掩码:
0x11111111或者0x1111111111111111
0xF0F0F0F0或者0xF0F0F0F0F0F0F0F0
大小取决于类型,是 32 位还是 64 位。
前任:
template <typename T> genMask(unsigned char templt) {
....
};
genMask<uint32_t>(0xF0);
genMask<uint64_t>(0xF0);
Run Code Online (Sandbox Code Playgroud)
第一次调用应该生成0xF0F0F0F0,而第二次调用 genMask 应该生成0xF0F0F0F0F0F0F0F0
目前我已经对这些进行了硬编码。
这里的任何想法将不胜感激。
编辑:这是一种老式的做法:
#define MASK(b) ((T(-1) / 0xFF) * (b))
其中 T 是类型。