首页 > 编程知识 正文

android加密和解密(android文件加密访问)

时间:2023-05-03 13:25:02 阅读:75038 作者:2863

本发明涉及信息加密领域,特别涉及安卓设备信息的加密方法、系统、设备、介质。

背景技术:

虽然可以轻松打开现有android设备的adb端口,但日志信息通常包含敏感信息、帐户、密码、位置、联系人、邮件等。 android设备打开adb端口后,其他人可以通过adblogcat相关命令获取android手机的日志信息。 对于android销售点设备和银行APP等对用户信息敏感的产品,可以通过log轻松泄露信息。

理由如下。

1、首先,获取安卓日志常用的命令是众所周知的。 也就是说,logcat是android设备用于获取androidlog的指令。

adblogcat-b,

adblogcat如bradio所示,

输出radiobuffer相关的日志。

logcat命令列表:

2、其次log输出的实际形式比较固定,且为明文形式:

典型的输出日志格式format _ brief : [ time ] [ log priority ]/[ tag ] [ PID ] [ logmsg ]。

例如,log :

08-1008336047336012.878 d/rild (298 ) :**rildaemonstarted**

如果是:

[time]:08-1008:47:12.878

[日志优先级]:d

[tag]:rild

[pid]:298

[logmsg]:rildaemonstarted*

注:PID:processid的进程id简称。

3、安卓日志框架的接口函数也直接通过/dev/socket/logdwsocket将明文写入日志缓冲器。

如图1所示,安卓日志系统框架大致可分为三个部分。

)1)上层接口,如alogd、log.d等。

)2) liblog库

)3)日志服务。

androidframework包含提供上层APP应用程序使用的接口的文件,例如log.java,在native或jni代码中为systemcoreincludeloglog.h 这两个接口是liblog的logger_write.cpp文件中的android_log_buf_write ()函数(log.java、slog.java、rlog.java )

根据以上3点,现有android设备的log为明文状态,因此打开adb端口后,其他人可以通过logcat命令获取log,从而泄露android设备的信息。

技术实现要素:

本发明要解决的技术问题是提供能够加密android设备的log以加密android设备的log信息的方法、系统、设备和介质,有效地保护log信息中的隐私信息。

在第一方面,本发明提供了一种安卓设备的日志加密方法。

步骤s1,调用android_log_buf_write (函数和__android_log_write )函数,然后通过persist.sys .

步骤s2、用上述加密算法和加密密钥明文格式的[logmsg]文本加密为密文;

步骤s3,通过名为/dev/socket/logdw的套接字将加密的[logmsg]文本写入logbuffer。

在第二个方面,本发明提供了一种安卓设备的log加密系统。

获取模块并调用android_log_buf_write (函数和__android_log_write )函数为write_to_log )函数后,单击persisid

加密模块,用于对所述加密算法和加密密钥明文格式的[logmsg]文本进行加密;

套接字模块,用于通过/dev/socket/logdw将加密的[logmsg]文本写入logbuffer。

在第三方面,本发明提供一种计算机装置,其包括存储器、处理器、存储在存储器中并可在处理器上执行的计算机程序,当所述处理器执行所述程序时,实现第一方面所述的方法。

在第四方面,本发明提供了一种计算机可读存储介质,该计算机程序存储有当被处理器执行时,实现在第一方面中描述的方法的计算机程序。

本发明实施例提供的一个或多个技术方案至少具有以下技术效果或优点:

本申请实施例提供的方法、装置、设备及介质是an

droid_log_buf_write()函数和__android_log_write()调用了write_to_log()函数之后,获取加密算法和加密密钥;对明文格式的[logmsg]文本加密成密文;从而使应用或者adb端口通过logcat获取的androidlog将是密文格式,保护了log信息安全。另外本申请实施例还通过定制密文格式增强了密文的便利性、安全性和可靠性;通过加入密文头尾:能更容易区分出密文起始和结束位置,一方面方便解析,另一方面可增强安全性,使得log在他人不知道格式的情况下,不容易被解密;且通过增加校验位,方便鉴别传输过程密文是否丢失,增强文本传输的可靠性。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为传统androidlog系统的框架示意图。

图2为本发明androidlog系统的框架示意图。

图3为本发明实施例一中android设备的log加密方法的流程框图。

图4为本发明实施例二中android设备的log加密系统的结构框图。

图5为本发明实施例三中电子设备的结构示意图;

图6为本发明实施例四中介质的结构示意图。

具体实施方式

本申请实施例提供的方法、装置、设备和介质,将明文格式的[logmsg]文本加密成密文;从而使应用或者adb端口通过logcat获取的androidlog将是密文格式,保护了log信息安全。

本申请实施例中的技术方案,总体思路如下:

在android_log_buf_write()函数和__android_log_write()调用了write_to_log()函数之后,获取加密算法和加密密钥;对明文格式的[logmsg]文本加密成密文;再通过/dev/socket/logdw这个socket写入到logbuffer里。

在介绍具体实施例之前,先介绍本申请实施例方法所对应的androidlog的框架。由于android设备的各种writelog方法中,log文本最终都通过/dev/socket/logdw这个socket写入到logbuffer。所以对log文本的加密处理需要放在writelogdwsocket前。因此将传统androidlog系统的框架做如下修改,请参阅图2所示,本发明经修改后的androidlog系统的框架具体包括下述几个方面:

(1)在androidframework中有log.java等文件提供了上层应用使用的接口,在native或jni代码中会使用systemcoreincludeloglog.h中定义的宏接口alogd、aloge等接口,这两部分接口分别调用liblog中logger_write.cpp文件的__android_log_buf_write()函数(log.java、slog.java、rlog.java调用)和__android_log_write()函数(alogd调用),

(2)两个函数都最终调用了write_to_log()函数。

(3)获取加密密钥和加密算法,执行加密,将明文变成密文

(4)然后通过/dev/socket/logdwsocket写入到logbuffer里。

实施例一

本实施例提供一种android设备的log加密方法,可以具体描述为下述过程:

步骤s1、在android_log_buf_write()函数和__android_log_write()调用了write_to_log()函数之后,通过persist.sys.logarithmetic获取加密算法,通过persist.sys.logkey获取加密密钥;本发明支持sha1、md5、hmac、aes、rc4、rabbit、base64等多种加密算法。如获取persist.sys.logarithmetic的值:1-7,具体含义如下1:sha1,2:md5,3:hmac,4:aes,5:rc4,6:rabbit,7:base64;而加密密钥一串8位数字;

步骤s2、通过所述加密算法和加密密钥明文格式的[logmsg]文本加密成密文;一般默认输出log格式是format_brief:[time][logpriority]/[tag][pid][logmsg],因此只需加密[logmsg]这串文本,因只有这串信息会含隐私信息。

然后定制密文格式;所述密文格式为:header+length+密文+校验位+end;

其中,

header是起始位0x0a;

length是密文长度;

校验位的算法:采用密文异或和,对数据逐一异或计算;

end是结束位0x0b。

步骤s3、将加密成密文的[logmsg]文本通过/dev/socket/logdw这个socket写入到logbuffer。

基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置,详见实施例二。

实施例二

在本实施例中提供了一种android设备的log加密系统,包括:

获取模块,在android_log_buf_write()函数和__android_log_write()调用了write_to_log()函数之后,用于通过persist.sys.logarithmetic获取加密算法,通过persist.sys.logkey获取加密密钥;

加密模块,用于通过所述加密算法和加密密钥明文格式的[logmsg]文本加密成密文;一般默认输出log格式是format_brief:[time][logpriority]/[tag][pid][logmsg],因此只需加密[logmsg]这串文本,因只有这串信息会含隐私信息。

还用于定制密文格式;所述密文格式为:header+length+密文+校验位+end;

其中,

header是起始位0x0a;

length是密文长度;

校验位的算法:采用密文异或和,对数据逐一异或计算;

end是结束位0x0b。

socket模块,用于将加密成密文的[logmsg]文本通过/dev/socket/logdw写入到logbuffer。

基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。

实施例三

本实施例提供了一种电子设备,具体为android设备,如图5所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。

由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。

基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。

实施例四

本实施例提供一种计算机可读存储介质,如图6所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。

综上所述本发明具有如下优点:本发明通过log加密,应用或者adb端口通过logcat获取的androidlog将是密文格式,保护了log信息安全。本发明还通过定制密文格式增强了密文的便利性、安全性和可靠性;通过加入密文头尾:能更容易区分出密文起始和结束位置,一方面方便解析,另一方面可增强安全性,使得log在他人不知道格式的情况下,不容易被解密;且通过增加校验位,方便鉴别传输过程密文是否丢失,增强文本传输的可靠性。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。