Weblogic 凭据解密问题
Issue with decryption of Weblogic Credentials
我已经使用此命令创建了一个配置文件和密钥文件
java weblogic.Admin -username test_user -password test_user -userconfigfile C:\temp\testingconfig.config -userkeyfile C:\temp\testingkey.key STOREUSERCONFIG
配置和密钥是
weblogic.management.username=
{3DES}1VR2QW0Yj3XHj/iEr+z9Mve3mJi0RSCw3J62m1rb063xLAHPTwXcS6X+VRC6tI8xsHriNfYtsB0\=
weblogic.management.password=
{3DES}ALU/yO2Zi4Z7SkVj1qJDvckmy7Y1DpDc7654xPIeg2zaj5On6yxa6xB0L4Xf0oS0d/9vtLFkgps\=
当我尝试使用配置和密钥以及我的 java 代码来解密这些凭据时,我得到了一些其他加密值:
密码=[C@3ba08dab
用户名={AES}OLU4ELDpdXulGpd4abYvYbN7i/ngvXbBFZ+/UyYk89I=
我写的java代码是
UsernameAndPassword file = UserConfigFileManager
.getUsernameAndPassword(<Path to config file>,
<Path to key file>",weblogic.management");
那么如何使用配置和密钥在 java 代码中获取 解密的 凭据作为 test_user/test_user。
请帮忙..
示例 WLST 脚本:
from weblogic.security import UserConfigFileManager
def decrypt(cred_file, secret_key):
u_and_p = UserConfigFileManager.getUsernameAndPassword(cred_file, secret_key, "weblogic.management")
return (u_and_p.getUsername(), u_and_p.getPassword().tostring())
config_path = '/path/to/config/file'
key_path = '/path/to/key/file'
print decrypt(config_path, key_path)
示例输出:
('admin', 'Pa$$w0rd')
这段代码对我来说可以正常工作几年。
以及如何从 WLST 创建新配对的示例:
import os
sys.path.append(os.path.dirname(os.path.realpath(sys.argv[0])))
from weblogic.security import UserConfigFileManager
from weblogic.security import UsernameAndPassword
ADMIN_USERNAME = 'admin'
ADMIN_PASSWORD = 'Pa$$w0rd'
CONFIG_PATH = '/path/to/config/file'
KEY_PATH = '/path/to/key/file'
System.setProperty('weblogic.management.confirmKeyfileCreation', 'true')
u_and_p = UsernameAndPassword(ADMIN_USERNAME, ADMIN_PASSWORD)
UserConfigFileManager.setUsernameAndPassword(u_and_p, CONFIG_PATH, KEY_PATH, 'weblogic.management')
要解决此问题,我们需要执行以下步骤:
- 拥有最新版本的weblogic。较新的版本正在使用
AES 安全算法。
- 为了接收username/password的字符串值,我们可以这样做:
file.getUsername().toString/file.getPassword().toString
file.getUsername()/file.getPassword()
new String(file.getUsername())/new String(file.getPassword())
在所有三个中,我们必须遵循第三个。不知道具体原因。但是创建字符串对象然后通过它获取值给了我们正确的结果。我们在这三种情况下收到的确切价值是。
- 第一种情况:- Username/password= 一些加密值
第二种情况:-
- 用户名:- 正确值
- 密码:- 空
第三种情况:
- 用户名:- 正确值
- 密码:- 正确值
我已经使用此命令创建了一个配置文件和密钥文件
java weblogic.Admin -username test_user -password test_user -userconfigfile C:\temp\testingconfig.config -userkeyfile C:\temp\testingkey.key STOREUSERCONFIG
配置和密钥是
weblogic.management.username=
{3DES}1VR2QW0Yj3XHj/iEr+z9Mve3mJi0RSCw3J62m1rb063xLAHPTwXcS6X+VRC6tI8xsHriNfYtsB0\=
weblogic.management.password=
{3DES}ALU/yO2Zi4Z7SkVj1qJDvckmy7Y1DpDc7654xPIeg2zaj5On6yxa6xB0L4Xf0oS0d/9vtLFkgps\=
当我尝试使用配置和密钥以及我的 java 代码来解密这些凭据时,我得到了一些其他加密值:
密码=[C@3ba08dab
用户名={AES}OLU4ELDpdXulGpd4abYvYbN7i/ngvXbBFZ+/UyYk89I=
我写的java代码是
UsernameAndPassword file = UserConfigFileManager
.getUsernameAndPassword(<Path to config file>,
<Path to key file>",weblogic.management");
那么如何使用配置和密钥在 java 代码中获取 解密的 凭据作为 test_user/test_user。
请帮忙..
示例 WLST 脚本:
from weblogic.security import UserConfigFileManager
def decrypt(cred_file, secret_key):
u_and_p = UserConfigFileManager.getUsernameAndPassword(cred_file, secret_key, "weblogic.management")
return (u_and_p.getUsername(), u_and_p.getPassword().tostring())
config_path = '/path/to/config/file'
key_path = '/path/to/key/file'
print decrypt(config_path, key_path)
示例输出:
('admin', 'Pa$$w0rd')
这段代码对我来说可以正常工作几年。
以及如何从 WLST 创建新配对的示例:
import os
sys.path.append(os.path.dirname(os.path.realpath(sys.argv[0])))
from weblogic.security import UserConfigFileManager
from weblogic.security import UsernameAndPassword
ADMIN_USERNAME = 'admin'
ADMIN_PASSWORD = 'Pa$$w0rd'
CONFIG_PATH = '/path/to/config/file'
KEY_PATH = '/path/to/key/file'
System.setProperty('weblogic.management.confirmKeyfileCreation', 'true')
u_and_p = UsernameAndPassword(ADMIN_USERNAME, ADMIN_PASSWORD)
UserConfigFileManager.setUsernameAndPassword(u_and_p, CONFIG_PATH, KEY_PATH, 'weblogic.management')
要解决此问题,我们需要执行以下步骤:
- 拥有最新版本的weblogic。较新的版本正在使用 AES 安全算法。
- 为了接收username/password的字符串值,我们可以这样做:
file.getUsername().toString/file.getPassword().toString
file.getUsername()/file.getPassword()
new String(file.getUsername())/new String(file.getPassword())
在所有三个中,我们必须遵循第三个。不知道具体原因。但是创建字符串对象然后通过它获取值给了我们正确的结果。我们在这三种情况下收到的确切价值是。
- 第一种情况:- Username/password= 一些加密值
第二种情况:-
- 用户名:- 正确值
- 密码:- 空
第三种情况:
- 用户名:- 正确值
- 密码:- 正确值