[英]How to convert public key and signature value in human readable format
I am trying to generate public key and signature in readable format which can be used in rest service .i have write following code . 我正在尝试以可读格式生成可用于休息服务的公共密钥和签名。我编写了以下代码。
public static void GenearetSignature(String url,String signatureValue,String publicKey){
KeyPairGenerator keyGen;
try {
keyGen = KeyPairGenerator.getInstance("DSA", "SUN");
SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");
keyGen.initialize(1024, random);
KeyPair pair = keyGen.generateKeyPair();
PrivateKey priv = pair.getPrivate();
PublicKey pub = pair.getPublic();
System.out.println("Priavte key"+priv);
System.out.println("Public key");
Signature dsa = Signature.getInstance("SHA1withDSA", "SUN");
dsa.initSign(priv);
dsa.update(url.getBytes());
byte[] signatureValueArray = dsa.sign();
signatureValue=new String(signatureValueArray,"UTF8");
byte[] publicKeyArray=pub.getEncoded();
publicKey = new String(publicKeyArray);
System.out.println("publicKey is "+publicKey);
System.out.println("signatureValue is "+signatureValue);
} catch (NoSuchAlgorithmException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
} catch(Exception e){
e.printStackTrace();
}
}
But this is not generating in alphanumeric value .how can i achieve that .please help me 但这并没有产生字母数字值。我该如何实现。请帮助我
如果要字节数组的十六进制表示,请使用
javax.xml.bind.DatatypeConverter.printHexBinary(byte[] array)
You can use base64 for communicating over rest. 您可以使用base64进行休息通信。 Another example is HTTP Basic authentication that encode password using base64 to putting it in HTTP header 另一个示例是HTTP Basic身份验证,该身份验证使用base64编码密码并将其放入HTTP标头中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.