服务器/var/www/html/file/媒体文件列表

  1. /var/www/html/file/aa_2278014217E434A91D25795CCC9E2E16.ts 删除
  2. /var/www/html/file/bb_041875CDF474148C7D8F1968859A6389.mp4 删除

账单

id文件名文件签名(MD5)用户id 用户签名的文件头
1b.mp4041875CDF474148C7D8F1968859A6389c5665c643a7eb5c33D743C306CBD2535F02C...删除
2aa.ts2278014217E434A91D25795CCC9E2E16c5665c643a7eb5c3797F09DA63D5325D6610...删除
+

说明

  1. 媒体文件下载后存到/sdcard/t039/ ,媒体文件并不能直接播放。
  2. 需要安卓手机下载安装t039.apk 需要确认有文件访问权限。运行界面如下。
  3. 选择媒体文件,点START,会出现ANDROID_ID,下载授权后会开始播放。
  4. 正式运行时,用户第一次运行后,读取ANDROID_ID和Device_ID后,强制用户下载带有私钥的新apk,在表user_key中有每个用户和他对应的私钥/公钥。
  5. 可以使用下面脚本生成20套钥匙,把20改成20000也行啊
    代码
    			#/bin/bash
    			for (( i=0; i<20; i++))
    			do
    			 ff=$(printf "%002d" $i)
    			 openssl  genrsa -out d${ff}.pem 2048
    			 openssl rsa -in d${ff}.pem -pubout -out d${ff}_public.pem
    			 openssl pkcs8 -topk8 -in d${ff}.pem -out d${ff}_private.pem -nocrypt
    			 rm d${ff}.pem
    			done
    			#_public.pem为公钥,可以存到数据库user_key里。_private.pem为私钥,可以写到用户自己的apk里。
    				
  6. 数据管理在http://123.56.146.46/phpmyadmin 用户名 root 密码 123123 数据库为 deepoon
    现在有3个表
    1. file 为各个媒体文件名,需要计算md5值,并把文件头n×116字节读到head字段中,将前n×116字节置为0。现在n=1。
    2. user_key为各个用户对应的私钥/公钥。正式运行后,应该只留公钥。
    3. bill为各个用户对每个媒体文件的购买情况,购买后会利用该用户的公钥对文件的头进行加密,只有该用户的私钥可以解密。
  7. 原理是对文件头加密,每个用户在购买每个媒体文件的授权之后,生成用户专用的加密文件头(授权)。用户的T039.apk播放前,读取缓冲时,使用解密的正常文件头,读取缓冲完毕,再恢复加密状态。
  8. 参考
    +
    1. 郝海琳. 基于JUNA轻量级数字签名的数字版权保护方案[D].北京工业大学,2013.
    2. 吴清亮. 一种基于android DRM框架实现OMA DRM的方法[J]. 无线互联科技,2012,(12):138-140.
    3. 古毅伟. Android平台流媒体数字版权管理系统设计与实现[D].北京邮电大学,2015.
  9. 管理
    + 代码、登录
    1. 登录 现在使用阿里云的ubuntu 14.04 Apache + PHP + Mysql + OpenSSL 的组合 登录密码和112.124.125.37一样
    2. 安卓端代码
    3. 服务器端代码