小编Sco*_*ski的帖子

什么样的Java类型是"[B"?

我试图通过Java代码(Hibernate)从MySQL DB获得MD5加密传递.但我不能得到String或任何合理的Java类型.

我唯一得到的是这个无用的消息: java.lang.ClassCastException:[B不能转换为com.mysql.jdbc.Blob(或者我尝试转换的任何Java类型).

这是我的方法:

public void testCrypto() {
        session.beginTransaction();
        // creates native SQL query
        // uses native MySQL's MD5 crypto
        final Blob pass = (Blob) session.createSQLQuery("SELECT MD5('somePass')")
            .list().get(0);
        session.getTransaction().commit();
}
Run Code Online (Sandbox Code Playgroud)

这是完整的堆栈跟踪:

java.lang.ClassCastException: [B cannot be cast to com.mysql.jdbc.Blob
    at domain.DatabaseTest.testCrypto(DatabaseTest.java:57)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at junit.framework.TestCase.runTest(TestCase.java:168)
    at junit.framework.TestCase.runBare(TestCase.java:134)
    at junit.framework.TestResult$1.protect(TestResult.java:110)
    at junit.framework.TestResult.runProtected(TestResult.java:128)
    at junit.framework.TestResult.run(TestResult.java:113)
    at junit.framework.TestCase.run(TestCase.java:124)
    at junit.framework.TestSuite.runTest(TestSuite.java:232)
    at junit.framework.TestSuite.run(TestSuite.java:227)
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) …
Run Code Online (Sandbox Code Playgroud)

java md5 cryptography hibernate jdbc

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

PHP中的AES-256加密

我需要一个PHP函数,AES256_encode($dataToEcrypt)加密$data到AES-256,另一个AES256_decode($encryptedData)反过来.有谁知道这个函数应该有什么代码?

php security encryption aes encryption-symmetric

24
推荐指数
3
解决办法
6万
查看次数

为什么不能反转加密哈希?

为什么你不能像你可以反转数学函数那样反转算法呢?如何制作一个不可逆的算法?

如果你使用彩虹桌,是什么让使用盐不可能破解它?如果你用蛮力制作彩虹表来生成它,那么它就会发明每个明文值(到一个长度),最终会包含每个可能密码的盐和每个可能的盐(盐和密码/文本会只是作为单个文本聚集在一起).

hash md5 cryptography reversing cryptographic-hash-function

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

是否有任何已发表的研究表明对MD5的前像攻击迫在眉睫?

我一直在阅读,因为MD5已经破损,破旧,过时,永远不会被使用.这激怒了我.

事实上,对MD5的碰撞攻击现在相当容易.有些人对艺术进行碰撞攻击,甚至可以用它们来预测选举.

我发现大多数MD5"破损"的例子都不那么有趣.即使是着名的CA证书黑客也是一次冲突攻击,这意味着它可以证明该方同时生成了GOOD和EVIL证书.这意味着如果EVIL CA进入野外,可以证明它从拥有良好CA的人那里泄露出来,因此无论如何都被信任.

更重要的是一个原或第二个原像攻击.

对MD5进行preimage攻击的可能性有多大?目前是否有任何研究表明它即将来临?MD5是否容易受到碰撞攻击,这使得它更容易遭受前像攻击?

hash md5 cryptography cryptographic-hash-function

20
推荐指数
1
解决办法
3201
查看次数

bcrypt与节点一起使用的替代方案是什么?

我已经尝试了几天在我的Windows机器上安装bcrypt而没有运气.其中一个依赖项(Windows 7 SDK)不希望安装,即使我已尝试过网络上的许多建议,它只是拒绝合作.

我需要一个很好的替代bcrypt,它没有任何依赖.

cryptography bcrypt password-hash node.js

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

SHA256withRSA它做什么以及以什么顺序?

在密码学等方面,我是一个全新的人.我不(也不想)知道SHA256和RSA的细节.我"知道"他们做了什么,而不是他们是怎么做的,现在这已经足够了.

我想知道什么是"SHA256withRSA"算法(如果你可以称之为),实际上是以什么顺序进行的.例如,它是否使用SHA256对数据进行哈希处理,然后使用RSA对其进行加密,反之亦然,还是其他什么?

我问的原因是因为我想做java相当于:

Signature.getInstance("SHA256withRSA")
signature.initSign(privateKey); //privateKey == a key extracted from a .p12 file
Run Code Online (Sandbox Code Playgroud)

在iOS上的Objective-C中.而我似乎无法找到任何完全符合这一要求的东西,因此我问,我可以只散列数据(SHA256)然后加密它(RSA)(反之亦然)并获得相同的行为吗?

做这种事情的建议解决方案是什么?

谢谢!

编辑:我没有提到我使用通过执行以下操作获得的私钥来签署数据:

KeyStore keystore = KeyStore.getInstance("PKCS12");
keystore.load(new FileInputStream(new File(filename)), password.toCharArray());
PrivateKey privateKey = (PrivateKey)keystore.getKey(alias, password.toCharArray());
Run Code Online (Sandbox Code Playgroud)

其中filename是例如:"/ somewhere/mykey.p12".

java cryptography rsa sha256 ios

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

未定义的函数sha256()

我有这个PHP代码:

$password = sha256($_POST['password']);
Run Code Online (Sandbox Code Playgroud)

但是当我运行这段代码时,它说:

Fatal error: Call to undefined function sha256() in .... on line ...ix it as 
Run Code Online (Sandbox Code Playgroud)

这段代码有什么问题,我必须做些什么才能解决这个问题,因为我知道sha256存在.

我也尝试过:

$password = sha256(trim($_POST['password']));
Run Code Online (Sandbox Code Playgroud)

但这也不起作用.

php cryptography trim undefined sha256

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

MD5哈希和Base64编码

如果我有一个32个字符的字符串(MD5哈希)并使用Base64对其进行编码,那么编码字符串的最大长度是多少?

hash base64 md5 cryptography cryptographic-hash-function

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

将旧的md5密码迁移到bcrypt密码

我正在使用Devise重新编写Rails中的网站进行身份验证.以前的网站使用具有md5密码的用户数据库,因此我想将此密码迁移到Devise使用的加密.我该如何解决?

hash md5 password-hash devise ruby-on-rails-3

16
推荐指数
3
解决办法
4422
查看次数

python加密的基础知识w/hashlib sha1

我很难完全理解加密的工作原理和编码方式,尤其是python.我只是试图了解基础并以最简单的形式创建代码.

我将在两个不同的站点之间传递userID,但显然我需要使用私钥加密,因此Website2知道它来自Website1.这似乎是我的代码:http: //docs.python.org/library/hashlib.html#module-hashlib,但它没有很好的例子(或者我可能在错误的位置).

我遇到的问题是完全理解如何编码和解码.

那么让我们说每个网站都知道的共享私钥是:

shared_private_key = "ABCDEF"
Run Code Online (Sandbox Code Playgroud)

我希望Website1将以下用户ID传递给Website2:

userID = "123456"
Run Code Online (Sandbox Code Playgroud)

Website1如何使用私钥加密我的userID,加密可以通过HTTP头发送,然后让Website2解密并能够使用共享私钥读取userID?

我为提出这样一个基本问题而道歉,但我没有意识到应该怎么做.谢谢.

python cryptography sha1 hmac hashlib

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