如何使用
类 WalletSM
井通联盟链钱包工具类(国密)
构造器
Java
public WalletSM() // 创建钱包对象(新钱包)
public WalletSM(java.lang.String secret) // 创建钱包对象,已知密钥
public WalletSM(java.lang.String secret, java.lang.String alphabet) // 创建钱包对象,已知密钥和联盟链字母表public WalletSM() // 创建钱包对象(新钱包)
public WalletSM(java.lang.String secret) // 创建钱包对象,已知密钥
public WalletSM(java.lang.String secret, java.lang.String alphabet) // 创建钱包对象,已知密钥和联盟链字母表参数:
- secret - 钱包密钥
- alphabet - 字母表,每一条联盟链都可以用不同的或者相同alphabet
随机生成钱包地址-generate
Java
public static WalletSM generate()
public static WalletSM generate(java.lang.String alphabet)public static WalletSM generate()
public static WalletSM generate(java.lang.String alphabet)参数:
- alphabet - 字母表,每一条联盟链都可以用不同的或者相同alphabet
返回:
- 钱包对象
点我查看代码
Java
System.out.println("---------generate jingtum wallet----------");
WalletSM walletsm = WalletSM.generate();
System.out.println("secret=" + walletsm.getSecret());
System.out.println("address=" + walletsm.getAddress());
System.out.println("publicKey=" + walletsm.getPublicKey());
System.out.println(JsonUtils.toJsonString(walletsm));
System.out.println("---------generate bizain wallet----------");
WalletSM walletsmBiz = WalletSM.generate("bpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2jcdeCg65rkm8oFqi1tuvAxyz");
System.out.println("secret=" + walletsmBiz.getSecret());
System.out.println("address=" + walletsmBiz.getAddress());
System.out.println("publicKey=" + walletsmBiz.getPublicKey());
System.out.println(JsonUtils.toJsonString(walletsmBiz));System.out.println("---------generate jingtum wallet----------");
WalletSM walletsm = WalletSM.generate();
System.out.println("secret=" + walletsm.getSecret());
System.out.println("address=" + walletsm.getAddress());
System.out.println("publicKey=" + walletsm.getPublicKey());
System.out.println(JsonUtils.toJsonString(walletsm));
System.out.println("---------generate bizain wallet----------");
WalletSM walletsmBiz = WalletSM.generate("bpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2jcdeCg65rkm8oFqi1tuvAxyz");
System.out.println("secret=" + walletsmBiz.getSecret());
System.out.println("address=" + walletsmBiz.getAddress());
System.out.println("publicKey=" + walletsmBiz.getPublicKey());
System.out.println(JsonUtils.toJsonString(walletsmBiz));根据密钥生成钱包-fromSecret
Java
public static WalletSM fromSecret(java.lang.String secret)
public static WalletSM fromSecret(java.lang.String secret, java.lang.String alphabet)public static WalletSM fromSecret(java.lang.String secret)
public static WalletSM fromSecret(java.lang.String secret, java.lang.String alphabet)参数:
- secret - 钱包密钥
- alphabet - 字母表,每一条联盟链都可以用不同的或者相同alphabet
返回:
- 钱包对象
点我查看代码
Java
WalletSM walletsm = WalletSM.fromSecret('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
String addresss = walletsm.getAddress();
System.out.println(addresss)WalletSM walletsm = WalletSM.fromSecret('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
String addresss = walletsm.getAddress();
System.out.println(addresss)判断钱包地址是否有效-isValidAddress
Java
public static boolean isValidAddress(java.lang.String address)public static boolean isValidAddress(java.lang.String address, java.lang.String alphabet)public static boolean isValidAddress(java.lang.String address)public static boolean isValidAddress(java.lang.String address, java.lang.String alphabet)参数:
- address - 钱包地址
- alphabet - 字母表,每一条联盟链都可以用不同的或者相同alphabet
返回:
- 有效返回true,无效返回false
点我查看代码
Java
System.out.println("---------isValidAddress----------");
System.out.println("是否有效=" + WalletSM.isValidAddress('jahbmVT3T9yf5D4Ykw8x6nRUtUfAAMzBRV'));System.out.println("---------isValidAddress----------");
System.out.println("是否有效=" + WalletSM.isValidAddress('jahbmVT3T9yf5D4Ykw8x6nRUtUfAAMzBRV'));判断钱包密钥是否有效-isValidSecret
Java
public static boolean isValidSecret(java.lang.String secret)
public static boolean isValidSecret(java.lang.String secret, java.lang.String alphabet)public static boolean isValidSecret(java.lang.String secret)
public static boolean isValidSecret(java.lang.String secret, java.lang.String alphabet)参数:
- secret - 钱包密钥
- alphabet - 字母表,每一条联盟链都可以用不同的或者相同alphabet
返回:
- 有效返回true,无效返回false
点我查看代码
Java
System.out.println("---------isValidSecret----------");
System.out.println("是否有效=" + WalletSM.isValidSecret('sszWqvtbDzzMQEVWqGDSA5DbMYDBN'));System.out.println("---------isValidSecret----------");
System.out.println("是否有效=" + WalletSM.isValidSecret('sszWqvtbDzzMQEVWqGDSA5DbMYDBN'));获取钱包公钥-getPublicKey
Java
public java.lang.String getPublicKey()public java.lang.String getPublicKey()返回:
- 钱包公钥
点我查看代码
Java
WalletSM walletsm = WalletSM.fromSecret('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
System.out.println("publicKey=" + walletsm.getPublicKey());WalletSM walletsm = WalletSM.fromSecret('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
System.out.println("publicKey=" + walletsm.getPublicKey());使用钱包密钥对信息进行签名-sign
Java
public java.lang.String sign(java.lang.String message)public java.lang.String sign(java.lang.String message)参数:
- message - 需要签名的原文
返回:
- 签名后的内容
点我查看代码
Java
WalletSM walletsm = new WalletSM('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
String signStr = walletsm.sign('hello jingtum');
System.out.println(signStr);WalletSM walletsm = new WalletSM('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
String signStr = walletsm.sign('hello jingtum');
System.out.println(signStr);校验信息的自作签名是否正确-verify
Java
public boolean verify(java.lang.String message, java.lang.String signature)public boolean verify(java.lang.String message, java.lang.String signature)参数:
- message - 签名的原文
- signature - 签名后的内容
返回:
- true:校验通过,false:校验不通过
点我查看代码
Java
WalletSM walletsm = new WalletSM('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
String signStr = walletsm.sign('hello jingtum');
Boolean f1 = WalletSM.verify(message,signStr);
System.out.println(f1);WalletSM walletsm = new WalletSM('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
String signStr = walletsm.sign('hello jingtum');
Boolean f1 = WalletSM.verify(message,signStr);
System.out.println(f1);通过公钥获取钱包地址-getAddress
Java
public static String getAddress(String pubKey)public static String getAddress(String pubKey)参数:
- pubKey - 公钥
返回:
- 钱包地址
点我查看代码
Java
System.out.println("---------fromSecret----------");
WalletSM wallet = WalletSM.fromSecret('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
String address1 = wallet.getAddress();
String pubKey = wallet.getPublicKey();
String address2 = WalletSM.getAddress(pubKey);
System.out.println("address1:"+address1);
System.out.println("pubKey:"+pubKey);
System.out.println("address2:"+address2);System.out.println("---------fromSecret----------");
WalletSM wallet = WalletSM.fromSecret('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
String address1 = wallet.getAddress();
String pubKey = wallet.getPublicKey();
String address2 = WalletSM.getAddress(pubKey);
System.out.println("address1:"+address1);
System.out.println("pubKey:"+pubKey);
System.out.println("address2:"+address2);获取钱包地址-getAddress
Java
public java.lang.String getAddress()public java.lang.String getAddress()返回:
- 钱包地址
点我查看代码
Java
WalletSM walletsm = new WalletSM('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
String address = walletsm.getAddress();
System.out.println(address);WalletSM walletsm = new WalletSM('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
String address = walletsm.getAddress();
System.out.println(address);获取钱包密钥-getSecret
Java
public java.lang.String getSecret()public java.lang.String getSecret()返回:
- 钱包密钥
点我查看代码
Java
WalletSM walletsm = new WalletSM('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
String secret = walletsm.getSecret();
System.out.println(secret);WalletSM walletsm = new WalletSM('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
String secret = walletsm.getSecret();
System.out.println(secret);获取钱包keypairs属性-getKeypairs
Java
public IKeyPair getKeypairs()public IKeyPair getKeypairs()返回:
- keypairs属性
点我查看代码
Java
WalletSM walletsm = new WalletSM('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
String keypairs = walletsm.getKeypairs();
System.out.println(keypairs);WalletSM walletsm = new WalletSM('sszWqvtbDzzMQEVWqGDSA5DbMYDBN');
String keypairs = walletsm.getKeypairs();
System.out.println(keypairs);设置钱包keypairs属性-setKeypairs
Java
public void setKeypairs(IKeyPair keypairs)public void setKeypairs(IKeyPair keypairs)参数:
- keypairs
- 钱包keypairs值
设置钱包密钥-setSecret
Java
public void setSecret(java.lang.String secret)public void setSecret(java.lang.String secret)参数:
- secret - 钱包密钥
设置钱包字母表-setAlphabet
Java
public void setAlphabet(java.lang.String alphabet)public void setAlphabet(java.lang.String alphabet)参数:
- alphabet - 字母表,每一条联盟链都可以用不同的或者相同alphabet
获取钱包字母表-getAlphabet
Java
public java.lang.String getAlphabet()public java.lang.String getAlphabet()返回:
- 钱包字母表