涉及的OpenAPI包括:纳管节点
通过API创建节点时password字段需要进行加密处理,具体方法如下:
Java
以下是Java环境下对密码进行加密的示例步骤:
import javax.crypto.Cipher;import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.spec.X509EncodedKeySpec;
import java.util.Base64;
public class PasswordEncryptDemo {
public final static String publicKeyWord = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCcX/slG/wUF6+qVw34VTW+gwFuVvHMHAPmu9jDn+jwED2A+i87CuYpvcjyYwPij41uS6SPZ/MSWDTO6f8/1YRs0Jbj1SIDNpRl/udTEbsPquFIqHSQSZsQseZS+j0HCAIwLUgMAJHW4AHw622Vgiirsm7gOY0qwnry1BmymiVXlQIDAQAB";
private static String encrypt(String password) throws Exception {
Cipher cipher = Cipher.getInstance("RSA");
PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(Base64.getDecoder().decode(publicKeyWord)));
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encrypts = cipher.doFinal(password.getBytes("UTF-8"));
return Base64.getEncoder().encodeToString(encrypts);
}
public static void main(String[] args) throws Exception {
String password = "密码";
String encryptPassword = encrypt(password);
System.out.println(encryptPassword);
}}
GO
以下是GO环境下对密码进行加密的示例步骤:
package mainimport (
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"encoding/base64"
"encoding/pem"
"fmt")const publicKeyword = "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCcX/slG/wUF6+qVw34VTW+gwFuVvHMHAPmu9jDn+jwED2A+i87CuYpvcjyYwPij41uS6SPZ/MSWDTO6f8/1YRs0Jbj1SIDNpRl/udTEbsPquFIqHSQSZsQseZS+j0HCAIwLUgMAJHW4AHw622Vgiirsm7gOY0qwnry1BmymiVXlQIDAQAB\n-----END PUBLIC KEY-----"func Encrypt(password string) string {
publicKeywordByte := []byte(publicKeyword)
block, _ := pem.Decode(publicKeywordByte)
if block == nil {
fmt.Println("解析pem 失败")
return ""
}
publicKeyInterface, error := x509.ParsePKIXPublicKey(block.Bytes)
if error != nil {
fmt.Println("Failed to parse public key:", error)
return ""
}
publicKey, ok := publicKeyInterface.(*rsa.PublicKey)
if !ok {
fmt.Println("Public key is not type rsa.publicKey")
return ""
}
ciphertext, err := rsa.EncryptPKCS1v15(rand.Reader, publicKey, []byte(password))
if err != nil {
fmt.Println("Encryption failed:", err)
return ""
}
return base64.StdEncoding.EncodeToString(ciphertext)}func main() {
fmt.Println(Encrypt("密码"))}