读书人

JBoss提供的惯用的对称加密算法

发布时间: 2013-10-29 12:07:57 作者: rapoo

JBoss提供的常用的对称加密算法

package com.test.resteasy;import java.io.File;import java.net.MalformedURLException;import java.net.URI;import java.net.URL;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.NoSuchAlgorithmException;import java.security.PublicKey;import java.security.interfaces.RSAPrivateKey;import java.security.interfaces.RSAPublicKey;import java.util.Date;import javax.ws.rs.core.MediaType;import junit.framework.Assert;import org.jboss.resteasy.jose.jwe.JWEBuilder;import org.jboss.resteasy.jose.jwe.JWEInput;import org.jboss.resteasy.jose.jws.JWSBuilder;import org.jboss.resteasy.jose.jws.JWSInput;import org.jboss.resteasy.jose.jws.crypto.RSAProvider;import org.jboss.resteasy.spi.ResteasyProviderFactory;import org.junit.Test;public class User {private String name;private Integer age;private Date birth;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Date getBirth() {return birth;}public void setBirth(Date birth) {this.birth = birth;}public static void main(String[] args) throws Exception {File file = new File("");URI uri = file.toURI();try {URL url = uri.toURL();} catch (MalformedURLException e) {e.printStackTrace();}}private static KeyPair keyPair = null;static {try {keyPair = KeyPairGenerator.getInstance("RSA").generateKeyPair();} catch (NoSuchAlgorithmException e) {e.printStackTrace();}}@Testpublic void testRSAWithContentType() throws Exception {String encoded = new JWSBuilder().contentType(MediaType.TEXT_PLAIN_TYPE).content("Hello World", MediaType.TEXT_PLAIN_TYPE).rsa256(keyPair.getPrivate());//System.out.println(encoded);JWSInput input = new JWSInput(encoded,ResteasyProviderFactory.getInstance());//System.out.println(input.getHeader());String msg = (String) input.readContent(String.class);Assert.assertEquals("Hello World", msg);Assert.assertTrue(RSAProvider.verify(input, keyPair.getPublic()));}@Testpublic void testRSA() throws Exception {//KeyPair keyPair = KeyPairGenerator.getInstance("RSA").generateKeyPair();String content = "Live long and prosper.";{PublicKey publicKey = keyPair.getPublic();RSAPublicKey rsaPublicKey = (RSAPublicKey) publicKey;String encoded = new JWEBuilder().contentBytes(content.getBytes()).RSA1_5(rsaPublicKey);//System.out.println("encoded: " + encoded);byte[] raw = new JWEInput(encoded).decrypt((RSAPrivateKey) keyPair.getPrivate()).getRawContent();String from = new String(raw);Assert.assertEquals(content, from);}{String encoded = new JWEBuilder().contentBytes(content.getBytes()).RSA_OAEP((RSAPublicKey) keyPair.getPublic());//System.out.println("encoded: " + encoded);byte[] raw = new JWEInput(encoded).decrypt((RSAPrivateKey) keyPair.getPrivate()).getRawContent();String from = new String(raw);Assert.assertEquals(content, from);}{String encoded = new JWEBuilder().contentBytes(content.getBytes()).A128CBC_HS256().RSA1_5((RSAPublicKey) keyPair.getPublic());//System.out.println("encoded: " + encoded);byte[] raw = new JWEInput(encoded).decrypt((RSAPrivateKey) keyPair.getPrivate()).getRawContent();String from = new String(raw);Assert.assertEquals(content, from);}{String encoded = new JWEBuilder().contentBytes(content.getBytes()).A128CBC_HS256().RSA_OAEP((RSAPublicKey) keyPair.getPublic());//System.out.println("encoded: " + encoded);byte[] raw = new JWEInput(encoded).decrypt((RSAPrivateKey) keyPair.getPrivate()).getRawContent();String from = new String(raw);Assert.assertEquals(content, from);}}@Testpublic void testDirect() throws Exception {String content = "Live long and prosper.";String encoded = new JWEBuilder().contentBytes(content.getBytes()).dir("geheim");//System.out.println("encoded: " + encoded);byte[] raw = new JWEInput(encoded).decrypt("geheim").getRawContent();String from = new String(raw);Assert.assertEquals(content, from);}}

读书人网 >操作系统

热点推荐