MSN

目的

用于创建加密密钥或加密连接字符串的部分以用于映射文件(在v4.10中添加)。通常,您可能希望加密数据库连接的连接参数部分。使用此加密方法支持以下连接类型:

另请注意用于访问受保护的密码 WFS services 也可以加密。

句法

要创建新的加密密钥:

msencrypt -keygen [key_filename]

要加密字符串:

msencrypt -key [key_filename] [string_to_encrypt]

在Mapfile使用

加密密钥的位置可以通过两种机制指定,一种是通过设置环境变量ms_encryption_key,另一种是在映射文件的映射对象中使用config指令。例如:

CONFIG MS_ENCRYPTION_KEY "/path/to/mykey.txt"

使用和字符作为映射文件中数据库连接内加密字符串的分隔符。例如:

CONNECTIONTYPE ORACLESPATIAL
CONNECTION "user/{MIIBugIBAAKBgQCP0Yj+Seh8==}@service"

例子

LAYER
  NAME "provinces"
  TYPE POLYGON
  CONNECTIONTYPE POSTGIS
  CONNECTION "host=127.0.0.1 dbname=gmap user=postgres password=iluvyou18 port=5432"
  DATA "the_geom FROM province using SRID=3978"
  STATUS DEFAULT
  CLASS
    NAME "Countries"
    STYLE
        COLOR 255 0 0
    END
  END
END

以下是在上述连接中加密密码的步骤:

  1. 生成加密密钥(请注意,此密钥不应存储在Web服务器的可访问目录中的任何位置):

msencrypt -keygen "E:\temp\mykey.txt"

生成的密钥文件可能包含如下内容:

2137FEFDB5611448738D9FBB1DC59055
  1. 使用生成的密钥加密连接的密码:

msencrypt -key "E:\temp\mykey.txt" "iluvyou18"

它在命令行返回加密的密码(您将在一秒钟内使用它):

3656026A23DBAFC04C402EDFAB7CE714
  1. 使用“ms_encryption_key”环境变量编辑映射文件以确保找到“mykey.txt”。map对象内的config参数可用于在mapfile内设置环境变量:

MAP
    ...
    CONFIG "MS_ENCRYPTION_KEY" "E:/temp/mykey.txt"
    ...
END #mapfile
  1. 修改层的连接以使用生成的密码密钥,确保在密钥周围使用“”括号:

CONNECTION "host=127.0.0.1 dbname=gmap user=postgres
            password={3656026A23DBAFC04C402EDFAB7CE714} port=5432"
  1. 完成!尝试使用 Sp2IMG 实用工具!