小编Den*_*nis的帖子

如何用java读取密码加密密钥?

我有私钥存储在PKCS8 DER格式的文件中,并受密码保护.最简单的阅读方式是什么?

这是我用来加载未加密的代码:

InputStream in = new FileInputStream(privateKeyFilename);
byte[] privateKeydata = new byte[in.available()];
in.read(privateKeydata);
in.close();
KeyFactory privateKeyFactory = KeyFactory.getInstance("RSA");
PKCS8EncodedKeySpec encodedKeySpec = new PKCS8EncodedKeySpec(privateKeydata);
PrivateKey privateKey = privateKeyFactory.generatePrivate(encodedKeySpec);
Run Code Online (Sandbox Code Playgroud)

它适用于具有相同规范的未加密密钥.顺便说一下,我正在使用BouncyCastle.

我可以使用以下openssl命令查看此私钥

openssl pkcs8 -in ./privatekey.key -inform DER -passin pass:thisismypass
Run Code Online (Sandbox Code Playgroud)

请帮忙!!!

我已经在我自己对这个主题的回答中发布了一些解决方案.但是如果没有额外的库,只有BouncyCastle,任何人都可以提供帮助,我仍然无法回答问题.

java bouncycastle jce pkcs#8 private-key

14
推荐指数
1
解决办法
2万
查看次数

无法实例化javax.servlet.ServletException

我正在尝试使用以下代码创建类javax.servlet.ServletException的实例

public class MyTroubleViewer {
 public static void main(String[] args) {
  javax.servlet.ServletException servletException = new javax.servlet.ServletException("Hello");
  System.out.println(servletException.getMessage());
 }
}
Run Code Online (Sandbox Code Playgroud)

但我在创建时遇到异常:

Exception in thread "main" java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/servlet/ServletException
...
Run Code Online (Sandbox Code Playgroud)

Maven帮助我依赖:

<dependency>
 <groupId>javax</groupId>
 <artifactId>javaee-api</artifactId>
 <version>6.0</version>
 <type>jar</type>
 <scope>compile</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

java maven-2 servlets java-ee java-ee-6

13
推荐指数
2
解决办法
2万
查看次数

获取声明的方法,使它们出现在源代码中

情况似乎是异常的,但我被要求构建序列化器,它将通过连接"get"方法的结果将对象解析为字符串.值应与源代码文件中声明的"get"等效值的顺序相同.

所以,例如,我们有

 Class testBean1{
  public String getValue1(){
   return "value1";
  }

  public String getValue2(){
   return "value2";
  }
 }
Run Code Online (Sandbox Code Playgroud)

结果应该是:

"value1 - value2"
Run Code Online (Sandbox Code Playgroud)

不是

"value2 - value1"
Run Code Online (Sandbox Code Playgroud)

Class根据文档,它不能用对象完成.但是我想知道我是否可以在"*.class"文件中找到这些信息还是丢失了?如果存在这样的数据,也许有人知道为此目的准备使用的工具?如果无法找到此类信息,请提出最专业的实现目标的方法.我想为应该序列化的类的getter添加某种自定义注释.

java reflection

10
推荐指数
1
解决办法
5962
查看次数

如何在JPA中映射自定义集合?

我在使用JPA(Hiberante提供程序)映射自定义集合时遇到问题.例如,当我使用带属性的对象时

List<Match> matches;
Run Code Online (Sandbox Code Playgroud)

<one-to-many name="matches">
    <cascade>
        <cascade-all />
    </cascade>
</one-to-many>
Run Code Online (Sandbox Code Playgroud)

在我的ORM文件中,它没关系; 但是,如果我替换"列出匹配;" 通过

private Matches matches;
Run Code Online (Sandbox Code Playgroud)

,其中"匹配"定义如下:

public class Matches extends ArrayList<Match> {

    private static final long serialVersionUID = 1L;
}
Run Code Online (Sandbox Code Playgroud)

它产生以下错误:

Caused by: org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: by.sokol.labs.jpa.MatchBox.matches
Run Code Online (Sandbox Code Playgroud)

感谢您的关注!

java collections persistence hibernate jpa

9
推荐指数
2
解决办法
8124
查看次数

Eclipse的Galileo的"clone()"方法生成器

clone()从存储库中获取Eclipse Galileo中java 方法生成的最佳工具是什么?是什么原因导致Eclipse开发人员无法在标准版本中包含此工具?

java eclipse clone cloneable eclipse-3.5

8
推荐指数
1
解决办法
7053
查看次数

解密用RSA java加密的"长"消息

嗨这是同一个问题,两年前被问过: Java/JCE:解密用RSA加密的"长"消息

我有一个大字节数组和rsa密钥对,由值1024启动.使用rsa加密和密钥的指定大小是强烈要求,我无法更改它.所以我不能使用非对称加密对称密钥进行对称加密.我不能使用任何其他键.我有一个字节数组,需要返回加密的字节数组.我想知道是否有任何现成的工具,可以解决这个问题?

对不起这样一个业余的问题,但我真的需要帮助.

java encryption rsa jce encryption-asymmetric

4
推荐指数
1
解决办法
4655
查看次数

使用Java访问Magento API:过程ххх不存在

我需要构建Special Java Api来包装Magento Api.在与几个Magento漏洞挣扎之后,我终于能够登录并获得会话ID; 但我打电话的任何方法都会导致我出错.错误是:

Procedure '*procedure name*' not present
Run Code Online (Sandbox Code Playgroud)

我使用Eclipse内置插件和位于我本地服务器的wsdl从wsdl生成Java代码:http://localhost/magento/index.php/api/v2_soap?wsdl = 1.

我使用的java代码示例:

    Mage_Api_Model_Server_V2_HandlerPortTypeProxy proxy = new Mage_Api_Model_Server_V2_HandlerPortTypeProxy(
            "http://localhost/magento/index.php/api/");
    String sessionId = proxy.login("magentobot", "123456");
    System.out.println("Session: " + sessionId);
    CatalogProductEntity[] products = proxy.catalogProductList(sessionId, new Filters(), "");
Run Code Online (Sandbox Code Playgroud)

这是我得到的例外:

Session: 12abdaf054fb7100b6c5d84ab8cb8311
Exception in thread "main" AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
 faultSubcode: 
 faultString: Procedure 'catalogProductList' not present
 faultActor: 
 faultNode: 
 faultDetail: 
    {http://xml.apache.org/axis/}stackTrace:Procedure 'catalogProductList' not present
    at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
    at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
    at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
    at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at …
Run Code Online (Sandbox Code Playgroud)

java proxy soap web-services magento

2
推荐指数
1
解决办法
6110
查看次数