RSA Encryption Exception on wildfly-8.0.0.Final
hai_feng May 15, 2014 4:54 AMHi everyone
Today,I want to use RSA funtion to encrypt a word,I encrypt it twice in the controller as following:
@Controller public class IndexController { @RequestMapping("index") public String index(){ AsymmetricCoder rsa = AsymmetricCoderFactory.getAsymmetricCoder("RSA"); String serverStr = "RSACoding"; String clientStr = "RSACoding"; String publicKey = null; System.out.println("server's context:" + serverStr); System.out.println("client's context:" + clientStr); String seed = "test"; Map<String, Object> keyMap; try { keyMap = rsa.initKey(seed); publicKey = rsa.getPublicKey(keyMap); byte[] client_public_str = rsa.encryptByPublicKey(clientStr.getBytes(), publicKey); byte[] server_public_str = rsa.encryptByPublicKey(serverStr.getBytes(), publicKey); BigInteger newClientStr = new BigInteger(client_public_str); System.out.println("client's codedContext:" + newClientStr.toString(16)); BigInteger newServerStr = new BigInteger(server_public_str); System.out.println("server's codedContext:" + newServerStr.toString(16)); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return "index.ftl"; } }
The value of serverStr and clientStr are the same,they are both "RSACoding".
when i deploy this project to wildfly-8.0.0.Final and "index" controller,the server.log show message as following:
because the value of serverStr and clientStr are the same,after use RSA Encrypties them,the Encryption context should be different,but above picture show that client's codedContext is same as server's codedContext.
when i deploy on tomcat 7 and jboss as 7,the server log as following:
tomcat 7:
jboss'
jboss as 7:
We can see that client's codedContext and server's codedContext are different,it's normally.
So i suspect this is a bug on wildfly-8.0.0.Final,who can tell me how to resolve this problem?
Thanks!