首页 > 数据库 >opensips将配置文件中的数据库密码加密

opensips将配置文件中的数据库密码加密

时间:2023-02-14 09:45:17浏览次数:28  
标签:加密 配置文件 数据库 ptr opensips mysql id con

本来没想着给数据库密码加密,结果当时用的数据库密码中有个@符号,opensips在解析数据库连接串的时候,会将@字符后的数据认为是数据库地址,导致一直连接失败。

解决方法:

1、配置文件中将数据库密码采用base64加密

opensips.cfg中,将数据库密码采用base64加密,搜索下base64在线加密工具即可。

2、在opensips源码中,将pwd解密,再进行连接

需要修改的源码 modules/db_mysql/my_con.c 

需要修改的方法 int db_mysql_connect(struct my_con* ptr)

具体修改的内容 char pwdbuf[256] = "";
    base64decode(pwdbuf, ptr->id->password, strlen(ptr->id->password));

    if (!mysql_real_connect(ptr->con, ptr->id->host,
            ptr->id->username, pwdbuf,
            ptr->id->database, ptr->id->port, 0,
#if (MYSQL_VERSION_ID >= 40100)
            CLIENT_MULTI_STATEMENTS|CLIENT_REMEMBER_OPTIONS
#else
            CLIENT_REMEMBER_OPTIONS
#endif
    )) {
        LM_ERR("driver error(%d): %s\n",
            mysql_errno(ptr->con), mysql_error(ptr->con));
        mysql_close(ptr->con);
        return -1;
    }

 

 

标签:加密,配置文件,数据库,ptr,opensips,mysql,id,con
From: https://www.cnblogs.com/GSONG/p/17118611.html

相关文章