# Password Manager Pro自定义密码算法（加密和解密）使用说明： #### (此功能只在企业版中可用) Password Manager Pro默认使用AES-256对称密码算法，并只在密码数据库存储这些加密的数据。每次安装PMP都会自动生成一个主加密密钥，它是唯一的，每一次安装是不一样的。因此，整个加密和解密方法会被放在Password Manager Pro的类文件中。因此，密钥的生成和加密逻辑会由Password Manager Pro执行。 除了默认的密码算法，PMP还允许您自定义密码算法。例如，现在，加密和解密方法可以由Jave接口“PMPEncryptDecrypt”通过setter和getter方法来实现，也就是说，您可以使用自己的密钥和加密逻辑进行加密。​ 重要提示：- 在配置自定义密码算法前，请先对PMP安装文件进行备份。如果数据库服务器位于另一台主机，需要确保对该主机上的PMP数据库进行了备份。这样在配置过程中一旦产生错误时，可以避免数据丢失。此外，您还要从以下几方面采取必要的防范措施： ### 个人密码管理： 如果您或某些用户在PMP的“个人密码管理”中，选择了“使用我的密钥而且不存储此密钥”，那么，在配置自定义加密后，则用户的这些数据将会丢失，且不能找回。因此，在进行配置前，请务必使用“导出密码”功能，先将密码导出。 #### 自定义密码算法步骤： 简单的说，配置自定义密码算法，需要执行一个包含您个人加密逻辑的实现类，下面是详细步骤： 第一步）编写您的个人实现类PMPEncryptDecrypt.java，如下所示： 请先按照如下说明编写您的个人实现类接口PMPEncryptDecrypt.java。 更多内容请参照java PMPEncryptDecrypt接口文档进行操作。 提示:- 类中的generateCryptographicKey()应该生成并返回一个新的32位密钥。getPmp32BitKey()应该返回最后生成的32bit密钥。无论何时调用它们，都应该是这样。 getMSSQLMasterKey()应该返回数据库主加密密钥，用于配置将MSSQL Always-On集群作为后端数据库。如果返回值为null或者空字符串，则集群级别节点切换操作将不被执行。 第二步：编译您的实现类 现在，请将您的实现类转换为SampleEncryption.jar，并将其移动到<PMP-Installation Folder>/lib目录。 第三步，停止PMP服务器 如果Password Manager Pro正在运行，请停止。 第四步，执行迁移加密脚本 场景1：未配置高可用性/故障转移服务 在<PMP_HOME>\bin目录，执行MigrateCryptography.bat，并将您的实现类作为参数。 脚本使用范例:- MigrateCryptography.bat com.org.crypto.SampleEncryptDecrypt 场景2：配置了高可用性/故障转移服务 如果在Password Manager Pro中已经配置了高可用性/故障转移服务，请按照如下步骤执行脚本： 停止并卸载备用服务器。 在主服务器通过执行migrateCryptography.bat配置自定义密码 然后，重新安装一个PMP备用实例。 现在，配置高可用性/故障转移服务。HAPack.zip或FOSPack.zip将会包含您自定义密码算法的jar文件。 第五步，启动PMP服务器。 完成以上步骤后，您需要启动Password Manager Pro使相应设置生效。
版权所有 ©2016, 卓豪（北京）技术有限公司，保留一切权利。

顶部