草庐IT

java - Java 中的 RSA 加密,PHP 中的解密

假设我有以下Java代码来生成公私key对:KeyPairGeneratorgenerator=KeyPairGenerator.getInstance("RSA");SecureRandomrandom=SecureRandom.getInstance("SHA1PRNG");generator.initialize(1024,random);KeyPairpair=generator.generateKeyPair();RSAPrivateKeypriv=(RSAPrivateKey)pair.getPrivate();RSAPublicKeypub=(RSAPublicKey)p

PHP RSA key 创建

我在创建/使用在PHP中创建和使用的RSAkey时遇到问题。问题是,(公钥和私钥)应该在不同的服务器之间交换(例如,当用户帐户被移动时)。现在,PHP的openssl-lib没有提供任何关于以何种格式创建key的详细信息。最新文档位于http://php.net/manual/en/function.openssl-pkey-export.php只是声明它是“PEM格式”,但没有说明它是PKCS#1还是PKCS#8此外,私钥PEM的header和尾部在PHP版本之间有所不同,如以下代码所示:'sha512',"private_key_bits"=>4096,"private_key_t

javascript - node.js 和 PHP 之间的 SHA1 哈希差异

我想将这部分node.js代码转换为PHP代码。(工作中)functiongenerateHashedPass(password,salt){varbyteSalt=newBuffer(salt,'base64');varbytePass=newBuffer(password,'ucs2');varbyteResult=Buffer.concat([byteSalt,bytePass]);returnsha1.update(byteResult).digest('base64');}console.log(generateHashedPass('111111','UY68RQZT14Q

c# - 在 C# 服务器和 PHP 客户端中使用 RSA KeyPair

我有一个C#服务器,它将生成一个RSA键值对。公钥将被发送到PHP客户端,然后该客户端将加密一些数据并发送到服务器。然后服务器将使用它拥有的私钥解密。我在C#中使用以下代码来做到这一点-CspParameterscspParams=newCspParameters{ProviderType=1};RSACryptoServiceProviderrsaProvider=newRSACryptoServiceProvider(1024,cspParams);stringpublicKey=Convert.ToBase64String(rsaProvider.ExportCspBlob(fa

php - 在 PHP 中正确使用带有 SHA512 的 crypt()

所有在线示例都显示了crypt的用法,如下所示:$pass=crypt('something','$6$rounds=5000$anexamplestringforsalt$');但每个人都说你不应该定义圆或盐。那我应该怎么使用呢?我还有一个问题:当我运行上面的代码时,它只运行了50轮而不是5000轮,就好像系统正在停止它一样。任何帮助将不胜感激。//-解决方案-//我发现其中一些很有用:用于生成盐:这是一种随机生成盐的方法$randomString=random_bytes(32);Base64编码保证部分字符不会对crypt造成问题$salt=base64_encode($rand

php - 如何从RSA的公开指数和模数生成DER/PEM证书?

众所周知,公钥由一个公共(public)指数和一个模数组成。我的问题是:如何从RSA的公开指数和模数生成DER/PEM证书?非常感谢您。 最佳答案 有了公共(public)指数和模数,您希望做的最好的事情就是得到这样的结果:-----BEGINPUBLICKEY-----MIGGAoGAfHlcdrcuOK6C02rbGR3SgV/ZJ2wnTiFBguh5FHduoB6LcZz49LIC/KcIiH/TckK8GxQdoJ7wHCPBpNiumrlC6caj/C8jO/HZ3cb12Wuk4gUuJq1lg5+HTv4KRJ9pF

c# - 将RSA加密Java代码移植到C#

我正在尝试将以下Java代码移植到C#等效代码:publicstaticStringencrypt(Stringvalue,Stringkey)throwsInvalidKeySpecException,NoSuchAlgorithmException,NoSuchPaddingException,InvalidKeyException,IllegalBlockSizeException,BadPaddingException{byte[]bytes=value.getBytes(Charset.forName("UTF-8"));X509EncodedKeySpecx509=newX

java - 如何从 Java 中的 *pem 字符串生成 RSA 私钥

我想从Java中的字符串(.pem文件)生成私钥。privatestaticfinalStringtest="-----BEGINRSAPRIVATEKEY-----\n"+"MIIEpAIBAAKCAQEAvcCH8WsT1xyrZqq684VPJzOF3hN5DNbowZ96Ie//PN0BtRW2\n"+//andsoon"-----ENDRSAPRIVATEKEY-----";try{StringprivKeyPEM=test.replace("-----BEGINRSAPRIVATEKEY-----\n","");privKeyPEM=privKeyPEM.replace("

Java ssh-rsa 字符串到公钥

我想获取.pub文件内容的公钥。这是一个.pub文件内容的示例(使用ssh-keygen生成):ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAACAQDBPL2s+25Ank3zS6iHUoVk0tS63dZM0LzAaniiDon0tdWwq4vcL4+fV8BsAEcpMeijS92JhDDc9FccXlHbdDcmd6c4ITOt9h9xxhIefGsi1FTVJ/EjVtbqF5m0bu7ruIMGvuP1p5s004roHx9y0UdHvD/yNWLISMhy4nio6jLailIj3FS53Emj1WRNsOrpja3LzPXzhuuj6YnD9yfBy

java - 应该如何通过 HTTP 公开 RSA 公钥?

我们需要将RSA公钥公开为HTTP资源-所以http://myhost.com/publickeys/akeyid返回公钥。我想用正确的Internet媒体类型返回它。那应该是什么?我承认我发现加密RFC相当难以理解。作为奖励,我如何使用java.security标准库轻松地与该格式进行转换?(使用java.security.RSAPublicKey.getEncoded()序列化为字节并使用java.security.spec.X509EncodedKeySpec反序列化那些相同的字节,可以很容易地往返于https://www.rfc-editor.org/rfc/rfc3280#s