各位大神 我想问一下,我现在有个作业,思路不是很清晰,还希望大神们给点指导。 作业要求是 开发一个 基于安卓的可搜索加密原型 差不多能做到对 短信,通讯录,和图片的可搜索加密,加密文件在本地就好。很简单的一个系统原型,最关键的是能实现对加密文件中的搜索。 求各位大神给点思路 脑子里一点感觉都没有
有以下几点难题:
1.如何对安卓平台下的短信,通讯录和图片进行操作。
2.加密文件放在本地后使用简单的数据结构如何实现加密文件的搜索。
我的思路举例(可能不准确):
安卓平台下文件1: 实验1.jpg 文件内容:可搜索加密1 //(文件名和文件内容都为明文)
安卓平台下文件2: 实验2.jpg 文件内容:可搜索加密2 //(文件名和文件内容都为明文)
安卓平台加密后1: Xxx.XXX 文件内容:B2$H42%71 //(加密后文件和文件内容都为密文)
安卓平台加密后2: yyy.yyy 文件内容:B2$H42%82 //(加密后文件和文件内容都为密文)
文件名(明文) | 文件名 (密文) | 文件编号
实验1.jpg | Xxx.XXX | 1
实验2.jpg | yyy.yyy | 2
———————————————————
通过对搜索的名字进行加密后形成搜索的关键字,在索引文件中找到相对应的 文件名(明文)
实现搜索的完成。
这种思路可以么? 如果可以的话能提供一些技术上需要什么方法和思路么? 谢谢大家!
如果大家还有什么思路 欢迎讨论一下 谢谢!
您的思路基本上是正确的。下面是一些具体的建议。
首先,对于短信和通讯录,您可以使用 Android 提供的 Content Provider 来访问它们的数据。Content Provider 是 Android 中的一个组件,它提供了一种标准的方式来访问和共享应用程序数据。您可以使用 Content Provider 来读取和写入短信和通讯录数据。
对于图片,您可以使用 Android 提供的 MediaStore 来访问它们的数据。MediaStore 是 Android 中的一个组件,它提供了一种标准的方式来访问和共享媒体文件,例如图片、音频和视频。您可以使用 MediaStore 来读取和写入图片数据。
关于加密和搜索,您可以使用一种称为可搜索加密(Searchable Encryption)的技术来实现。可搜索加密是一种特殊的加密技术,它允许用户在加密的数据集合中搜索特定的数据,而无需暴露数据的明文。
具体地说,您可以在本地存储中保存一个加密的索引文件,该文件包含加密后的文件名和对应的文件编号。当用户进行搜索时,您可以将搜索关键字加密后与索引文件中的加密文件名进行匹配,找到对应的文件编号,然后再去读取对应的加密文件,解密后返回明文结果。
关于加密算法的选择,可以使用常见的对称加密算法,例如 AES、DES 等,同时加密关键字时可以使用哈希算法进行处理。
最后,建议在实现过程中注意安全问题,例如加密算法的安全性、加密密钥的管理、用户数据的保护等。