Tag: digest

在java中将byte 转换为PrivateKey以进行数字签名

我需要先使用SHA-1摘要算法对String进行数字签名,然后应用RSA算法,使用PrivateKey对其进行签名。 我已经将PrivateKey存储在我的数据库中,作为base64中的数据类型char(250)。 我的问题是我不知道如何将其转换为PrivateKey以使用它进行登录: Cipher cipher = Cipher.getInstance(“RSA”); cipher.init(Cipher.ENCRYPT_MODE, privateKey); byte[] cipherText = cipher.doFinal(digest); Digest是我应用SHA-1摘要算法的字节数组: MessageDigest md = MessageDigest.getInstance(“SHA-1”); byte [] ba = cadena.getBytes(); byte [] digest = md.digest(ba); 这是我想到的解决方案,但如果有人有更好的解决方案我会很感激。

Glassfish安全性 – jdbcRealm:如何使用SHA-256摘要配置登录

我在glassfish v3.0.1 b22中使用jdbcRealm来保证安全性。 它的设置是为了通过以下博客使用我的数据库中的USER表进行身份validation: http : //blogs.oracle.com/foo/entry/mort_learns_jdbc_realm_authentication 。 如果我将摘要算法保留为纯文本,我的工作正常。 但是,当我尝试使用SHA-256进行摘要算法时,它会停止工作。 我所做的是在Glassfish中指定 – 安全 – 领域 – jdbcRealm – 我想要SHA-256的摘要(我只是在摘要字段中键入SHA-256)。 然后我编写了一个简单的Java程序,将密码文本转换为SHA-256哈希。 然后我将该哈希粘贴到数据库中的密码字段中。 顺便说一句,密码字段是类型varchar(30)。 我不能再登录了。 有一点我注意到我的简单Java程序每次为同一文本字段生成不同的哈希。 下面是我简单的java程序: MessageDigest md = MessageDigest.getInstance(“SHA-256”); String text = “admin”; md.update(text.getBytes(“UTF-8”)); byte[] digest = md.digest(); System.out.println(digest.toString());

使用iText库在pdf中插入隐藏的摘要

我使用iText库(Java)搜索一个方法,用于将摘要(字节数组或字符串)插入PDF文件。 我使用此方法从String创建摘要: private String crypt(double x, ByteArrayOutputStream baos) throws UnsupportedEncodingException, NoSuchAlgorithmException{ MessageDigest md = MessageDigest.getInstance(“SHA-256”); md.update(String.valueOf(x).getBytes(“UTF-8”)); md.update(String.valueOf(baos).getBytes(“UTF-8”)); byte[] digest = md.digest(); StringBuffer sb = new StringBuffer(); for(byte d:digest){ sb.append(Integer.toHexString(0xFF & d)); } return sb.toString(); } 摘要不应在PDF中看到,但必须将其摘录以进行比较。

在使用NTLM进行身份validation时,HttpClient 4.1.1返回401,浏览器工作正常

我正在尝试使用Apache / Jakarta HttpClient 4.1.1使用给定的凭据连接到任意网页。 为了测试这一点,我在运行的dev机器上安装了最少的IIS 7.5,其中一次只有一种身份validation模式处于活动状态。 基本身份validation工作正常,但每当我尝试登录时,Digest和NTLM都会返回401错误消息。这是我的代码: DefaultHttpClient httpclient = new DefaultHttpClient(); HttpContext localContext = new BasicHttpContext(); HttpGet httpget = new HttpGet(“http://localhost/”); CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials(AuthScope.ANY, new NTCredentials(“user”, “password”, “”, “localhost”)); if (!new File(System.getenv(“windir”) + “\\krb5.ini”).exists()) { List authtypes = new ArrayList(); authtypes.add(AuthPolicy.NTLM); authtypes.add(AuthPolicy.DIGEST); authtypes.add(AuthPolicy.BASIC); httpclient.getParams().setParameter(AuthPNames.PROXY_AUTH_PREF, authtypes); httpclient.getParams().setParameter(AuthPNames.TARGET_AUTH_PREF, authtypes); } localContext.setAttribute(ClientContext.CREDS_PROVIDER, credsProvider); […]