为android设备 adb shell 与 su 命令 添加密码验证流程可以提高安全性。
 本文实现平台为 rk3128,Android5.1。
设计思路

 
 
实现代码
- 密码加密采用md5算法
由于android5.1 openssl并没有实现md5算法,所以需要自己实现。
有两种方式解决:
一是移植完整的openssl代码;
另一种就是直接实现md5算法。
本文采用第二种方法,算法参见链接 android,openssl,MD5算法实现 。 
- 实现基础函数
 
#include <termio.h>
//#include <openssl/md5.h>
#include "md5.h"
#define PW_LEN    50
#define MD5_BUZ   33
int adb_pass = 0;
static char enter_pwd [PW_LEN] = {
   
   0};
/**
*  LINUX C实现密码输入不回显
*/
static int getch(void)
{
   
   
     struct termios tm, tm_old;
     int fd = 0, ch;
 
     if (tcgetattr(fd, &tm) < 0) {
   
   //保存现在的终端设置
          return -1;
     }
 
     tm_old = tm;
     cfmakeraw(&tm);//更改终端设置为原始模式,该模式下所有的输入数据以字节为单位被处理
     if (tcsetattr(fd, TCSANOW, &tm) < 0) {
   
   //设置上更改之后的设置
          return -1;
     }
 
     ch = getchar();
     if (tcsetattr(fd, TCSANOW, &tm_old) < 0) {
   
   //更改设置为最初的样子
          return -1;
     }
         
     return ch;
}
static void encrypt_md5(char * src, char * dest)
{
   
   	
    MD5_CTX md5_ctx;
    unsigned char md5[16];
    char md5_tmp[MD5_BUZ]={
   
   0};	
    //MD51
    MD5_Init(&md5_ctx); 	
    MD5_Update(&md5_ctx
                
增强ADB与su命令安全:添加密码验证
        
                  
                  
                  
                  
本文介绍如何在Android 5.1(rk3128平台)上为adb shell和su命令添加密码验证流程,以提高设备的安全性。通过实现MD5加密算法,确保密码的两重加密,并分别在adb服务端和服务端的su命令中实现了验证流程。错误和正确输入密码的执行结果进行了展示。
          
最低0.47元/天 解锁文章
                          
                      
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
					3663
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            