草庐IT

Crypt_RSA

全部标签

php - 如何找出你的机器上 crypt() 使用的算法?

我不确定crypt()在散列时使用哪种算法。我查看了PHP手册,但它只是说它使用任何可用的东西。但是我怎么知道它使用哪一个,如果它确实使用了一个,又如何告诉它使用哪一个呢?我目前使用MAMP作为我的开发环境,但我认为必须有一种方法可以通过PHP中的语句找到答案。 最佳答案 您将算法指定为盐字符串的一部分。例如,以$2a$开头会得到一个Blowfish密码。如果机器不支持您尝试使用的算法,您将得不到有意义的结果。您可以尝试通过检查一些预定义常量(例如CRYPT_BLOWFISH)来提前找出支持哪些算法,尽管我注意到常量CRYPT_SH

php - 兼容Javascript和PHP的RSA加密/解密

我想用Javascript加密,然后用PHP解密。有针对Javascript和PHP的RSA实现,但它们不兼容。我无法在PHP中正确解密我用Javascript加密的内容。有人知道可以同时使用Javascript和PHP的库/代码吗?谢谢。 最佳答案 试试下面这个简单的例子。它使用的是开源javascript库https://github.com/ziyan/javascript-rsaHTML/JavaScript:functionencryptData(){//Don'tforgettoescapethelines:varpem

php - 如何使用 PHP 向任何文件添加数字签名(RSA、证书等)?

我需要知道是否可以使用RSA、证书等对任何类型的文件进行数字签名,或者是否只能对某些类型的文件进行签名。所有这一切,都使用PHP。例如:可以对纯文本文件进行数字签名吗?图像(png、jpeg、bmp)呢?我不需要“附加”带有图形签名的图像。感谢您的帮助。 最佳答案 回复:是否可以使用RSA、证书等对任何类型的文件进行数字签名,或者是否只能对特定类型的文件进行签名?答:是也不是。一方面,可以为任何位束计算标准数字签名,包括纯文本文件、图像文件、二进制文件,以及您能想到的任何东西。但是问题变成了:如何将数字签名(它本身就是二进制位)与数

PHP crypt() 返回错误答案

我想我在这里失去了理智...我的网站出现问题,随机停止接受登录。我现在已经能够将其追溯到crypt()的异常行为。在我的数据库中,我有用户密码的加密版本-所以假设为Og12345678。当用户登录时,他们输入密码,我从数据库中读取盐分,然后加密他们输入的内容并进行比较——通常这很有效。所以我正在执行crypt($enteredPassword,$saltFromDb)-在这种情况下,盐当然是Og。通常对于给定的用户密码crypt工作正常。当出现问题时(当它们出现问题时,这是一个永久性的变化,直到我重新启动Apache)我发现crypt开始为具有相同盐的相同输入返回不同的答案。然而,它是

PHP crypt 和 salt - 请详细说明

我昨天来过这里,得到了一些非常好的答案。我把我得到的东西放在一起,我认为这将是一个相当安全的算法。我在使用带有生成盐的for循环的河豚时遇到问题。我使用base64字符和for循环来获取随机字符串。我想将这个生成的字符串作为盐插入到crypt函数中。因为关于河豚的文档非常少,而且PHP文档甚至都没有提到它,所以我在这里有点摸不着头脑。真正奇怪的是,如果您按现在的方式运行这段代码,它不会失败。从crypt函数或中移除for循环上方的“$2a$07$”,它将间歇性地返回一个加密字符串。我对河豚的理解是加密字符串必须以“$2a$07$”开头并以“$”结尾,因此在crypt函数中连接。我真的不

php - Crypt() 函数的河豚盐长度?

根据crypt()documentation,盐必须是字母“./0-9A-Za-z”中的22位64位数字。这是他们给出的代码示例:crypt('rasmuslerdorf','$2a$07$usesomesillystringforsalt$');第一个令人困惑的部分是salt有25个字符,而不是22个。问题#1:这是否意味着盐应该长超过22个字符?然后我自己测试了这个函数,发现了一些东西。如果我使用20个字符的盐,我会得到这个//using20charsalt:00000000001111111111crypt('rasmuslerdorf','$2a$07$000000000011

java - 如何在 Android 上使用 Java BouncyCaSTLe API 使用明文 key 对字符串进行 RSA 加密

我正在尝试使用Android中的BouncyCaSTLeAPI加密字符串以发送到服务器。我有明文的公钥(当然是在内存中,而不是在文件系统中!密码学家,没必要对我大喊大叫;))我需要使用这个明文公钥将字符串加密为RSA加密字符串。这是我的课:publicclassRSAEncryptor{//Getcertificatefrombase64stringpublicstaticX509CertificategetCertificateFromBase64String(Stringstring)throwsCertificateException,javax.security.cert.Ce

Android 4.2.2 RSA 禁用

如何为android4.2.2禁用RSA认证我尝试了以下方法:1)setpropro.adb.secure0getpropstillreturn1.2)Rootphoneandretrymethod1getpropstillreturn1.3)Rootphoneandmanuallychangero.adb.secureto0inthe/default.propgetpropstillreturn1.有谁知道如何禁用此检查: 最佳答案 以下是您尝试的方法不起作用的原因:ro.*属性是只读的。一旦设置了只读属性,就永远不能更改或删除它

java - 在 Android Jelly Bean 上恢复 RSA 私钥时出错

我在我的应用程序中使用了加密。我将私钥存储为字节数组并使用以下代码恢复它:PrivateKeyprivate=KeyFactory.getInstance("RSA").generatePrivate(newPKCS8EncodedKeySpec(s_privateKeyIn1t));它在我所有的目标android平台2.1->4.0.4上完美运行,但在JellyBean上失败了!JellyBean抛出异常:07-2017:29:35.197:E/AnyBalance:Codec(990):Causedby:java.lang.RuntimeException:error:0D0680

java - Android 和 Java 环境之间的 RSA 加密差异

首先,对于我即将发布的代码量,我深表歉意。我正在尝试使用我的Java应用程序中的RSA公钥来加密Android应用程序中的消息,然后将密文发送回Java环境进行解密,但在尝试解密时我总是会收到此错误:javax.crypto.BadPaddingException:Decryptionerroratsun.security.rsa.RSAPadding.unpadV15(RSAPadding.java:380)atsun.security.rsa.RSAPadding.unpad(RSAPadding.java:291)atcom.sun.crypto.provider.RSACiph