相关疑难解决方法(0)

如何将.cer证书导入java密钥库?

在开发Java Web服务客户端期间,我遇到了一个问题.Web服务的身份验证使用客户端证书,用户名和密码.我从webservice后面的公司收到的客户证书是.cer格式化的.当我使用文本编辑器检查文件时,它具有以下内容:

-----BEGIN CERTIFICATE-----
[Some base64 encoded data]
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

我可以在Internet Explorer中将此文件作为证书导入(无需输入密码!)并使用它来通过Web服务进行身份验证.

通过首先剥离第一行和最后一行,转换为unix换行符并运行base64-decode,我能够将此证书导入密钥库.可以将生成的文件导入密钥库(使用该keytool命令).当我列出密钥库中的条目时,此条目属于该类型trustedCertEntry.由于此条目类型(?),我无法使用此证书对Web服务进行身份验证.我开始认为提供的证书是用于身份验证的公共证书...

我找到的解决方法是在IE中导入证书并将其导出为.pfx文件.此文件可以作为密钥库加载,并可用于对Web服务进行身份验证.但是,我不能指望我的客户每次收到新证书时都会执行这些步骤.所以我想将.cer文件直接加载到Java中.有什么想法吗?

附加信息:webservice背后的公司告诉我,应该从PC和用户那里请求证书(使用IE和网站),以便稍后导入证书.

java certificate keystore

208
推荐指数
7
解决办法
79万
查看次数

java SSL和cert密钥库

我的java程序如何知道包含证书的密钥库在哪里?或者,我如何告诉我的java程序在哪里查找密钥库?

以某种方式指定密钥库后,如何指定用于向客户端验证服务器的证书?

java keystore

156
推荐指数
5
解决办法
39万
查看次数

鉴于最终块未正确填充

我正在尝试实现基于密码的加密算法,但是我得到了这个例外:

javax.crypto.BadPaddingException:给定最终块未正确填充

可能是什么问题?(我是Java新手.)

这是我的代码:

public class PasswordCrypter {

    private Key key;

    public PasswordCrypter(String password)  {
        try{
            KeyGenerator generator;
            generator = KeyGenerator.getInstance("DES");
            SecureRandom sec = new SecureRandom(password.getBytes());
            generator.init(sec);
            key = generator.generateKey();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    public byte[] encrypt(byte[] array) throws CrypterException {
        try{
            Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
            cipher.init(Cipher.ENCRYPT_MODE, key);

            return cipher.doFinal(array);
        } catch (Exception e) { 
            e.printStackTrace();
        }
        return null;
    }

    public byte[] decrypt(byte[] array) throws CrypterException{
        try{
            Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
            cipher.init(Cipher.DECRYPT_MODE, key);

            return cipher.doFinal(array);
        } …
Run Code Online (Sandbox Code Playgroud)

java encryption cryptography exception javax.crypto

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

如何使用Square OKHTTP固定证书?

我想我需要创建一个新的SSL套接字工厂?此外,出于显而易见的原因,我不想使用全局SSL上下文(https://github.com/square/okhttp/issues/184).

谢谢!

编辑:

从okhttp 2.1.0开始,您可以非常轻松地修复证书.

请参阅此处的源代码以开始使用

android okhttp

45
推荐指数
4
解决办法
3万
查看次数