最近在做一个产品,要对其中的内容实行DRM。因为是在嵌入式设备上实现解密,要求自然也就是效率高,实现容易,不能增加太多解密冗余时间(限制在1s以内)。 (不算是真正的DRM,只是对文件进行一种保护罢了)
步骤:
1、读取Flash或者SD上的文件到内存
2、根据算法,进行解密
3、保存解密后的文件到Flash ( 开辟额外存储区(确保对用户不可见)保存之前打开的几个文件,下次打开时不用再运行解密动作,节省时间)
注:
总时间数 = 解密时间 + 存储Flash时间
优点:
1、实现简单,容易操作
缺点:
1、文件大小,解密时间数增大相当可观
2、占用额外Flash空间
3、再次存储的Flash上,时间数增加的相当可观,难以忍受
改进方法1(已经实现):
1、建立ramfs区,解密后的文件存储在ramfs分区不在存储于Flash上
注:
总时间数 = 解密时间 + 存储ram时间(几乎可以忽略不计)
优点:
1、解密时间数未减少
2、不在占用额外Flash空间
3、不对Flash写入解密后的文件,总时间数大大减少
缺点:
1、每次都需要解密文件到ramfs区
2、占用ram大小,若文件太大,并不适合此方式