是否有可能隐藏/编码/encryption的PHP文件/源代码,并让其他人有系统安装并运行在他们的机器上?
我遇到了基本的encryption/解密问题。 我已经看了一个工作的例子,但还没有find一个工作的例子。 我将在php中进行encryption,使用cryptojs进行解密以获得一小层安全性 <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"> <? $text = "this is the text here"; $key = "encryptionkey"; $msgEncrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)); $msgBase64 = trim(base64_encode($msgEncrypted)); echo "<h2>PHP</h2>"; echo "<p>Encrypted:</p>"; echo $msgEncrypted; echo "<p>Base64:</p>"; echo $msgBase64; ?> <p>AES Decrypt</p> <script> var key = 'encryptionkey'; var encrypted = "<?php echo $msgBase64 ?>"; //tried var […]
我想了解什么是Java java.security.Signature类。 如果我计算SHA1消息摘要,然后使用RSA对摘要进行encryption,则会得到不同的结果来要求Signature类签署相同的事情: // Generate new key KeyPair keyPair = KeyPairGenerator.getInstance("RSA").generateKeyPair(); PrivateKey privateKey = keyPair.getPrivate(); String plaintext = "This is the message being signed"; // Compute signature Signature instance = Signature.getInstance("SHA1withRSA"); instance.initSign(privateKey); instance.update((plaintext).getBytes()); byte[] signature = instance.sign(); // Compute digest MessageDigest sha1 = MessageDigest.getInstance("SHA1"); byte[] digest = sha1.digest((plaintext).getBytes()); // Encrypt digest Cipher cipher = Cipher.getInstance("RSA"); […]
我不熟悉encryption。 我需要实现非对称encryptionalgorithm,我认为它使用私钥/公钥。 我开始使用RSACryptoServiceProvider的示例。 可以用小数据来encryption。 但是当在相对较大的数据“2行”上使用它时,我得到了exceptionCryptographicException“Bad Length”! //Create a new instance of RSACryptoServiceProvider. using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider()) { //Import the RSA Key information. This only needs //toinclude the public key information. //RSA.ImportParameters(RSAKeyInfo); byte[] keyValue = Convert.FromBase64String(publicKey); RSA.ImportCspBlob(keyValue); //Encrypt the passed byte array and specify OAEP padding. //OAEP padding is only available on Microsoft Windows […]
如果在login屏幕上用户使用他的用户名和密码提交表单,密码将以纯文本forms发送(即使使用POST,如果我错了,也要纠正)。 所以问题在于保护用户和密码的方法是什么?对于可能窃听通信数据的第三方? 我知道HTTPS是解决问题的方法,但有什么办法可以保证使用标准的HTTP协议(POST请求)至less有一定程度的安全性吗? (可能以某种方式使用JavaScript) 编辑我可能已经遗漏了一些重要的事情。 我所讲的是一个页面 – 那就是PHP生成的login页面,当然这个页面是通过HTTP GET请求作为HTML文件发送给用户的。 服务器和客户端之间没有(@Jeremy Powel)连接,所以我不能创build这样的握手协议。 我希望完整的过程对用户是透明的 – 他想提交密码,而不是密码处理。 谢谢。
我在哪里可以find一些有关RSA公钥格式的文档? 由OpenSSH格式化的RSA OpenSSH : SSH-RSA AAAAB3NzaC1yc2EAAAABJQAAAQB / nAmOjTmezNUDKYvEeIRf2YnwM9 / uUG1d0BYsc8 / tRtx + RGi7N2lUbp728MXGwdnL9od4cItzky / zVdLZE2cycOa18xBK9cOWmcKS0A8FYBxEQWJ / q9YVUgZbFKfYGaGQxsER + A0w / fX8ALuk78ktP31K69LcQgxIsl7rNzxsoOQKJ / CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr / QbrfB1WT6s3838SEaXfgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN + ffE7iiayQf / 2XR + 8j4N4bW30DiPtOQLGUrH1y5X / rpNZNlWW2 + jGIxqZtgWg7lTy3mXy5x836Sj / 6L 在Secure Shell (RFC 4716 – 安全shell(SSH)公钥文件格式)中使用的相同公钥: —- BEGIN SSH2 PUBLIC KEY —- AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYs c8/tRtx+RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS 0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER+A0w/fX8ALuk78ktP31K69LcQgxIsl7r NzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaX fgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN+ffE7iiayQf/2XR+8j4N4bW30DiPtOQ […]
编码和encryption有什么区别?
我有一个业务需求,迫使我在短时间内存储客户的完整信用卡详细信息(号码,姓名,失效date,CVV2)。 理由:如果客户打电话订购产品,并且他们的信用卡在现场被拒绝,您可能会失去销售。 如果你把他们的细节,感谢他们的交易,然后发现卡被拒绝,你可以给他们打电话,他们更可能find另一种方式来支付产品。 如果信用卡被接受,则清除订单中的详细信息。 我无法改变这一点。 现有的系统以明文forms存储信用卡详细信息,并且在我正在build造的新系统中replace这个我显然不会复制这个! 那么我的问题就是如何在短时间内安全地存储信用卡。 我显然想要一些encryption,但最好的办法是什么? 环境:C#,WinForms,SQL-Server。
我正在用JavaScriptencryption我的用户密码,如下所示: var encryptedPassword = CryptoJS.AES.encrypt(password, "Secret Passphrase"); 它工作正常,但现在我试图解密在服务器端PHP这样的: $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND); $decryptPassword = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, "Secret Passphrase", base64_decode($password), MCRYPT_MODE_CBC, $iv); 它根本不起作用,解密的密码string看起来很奇怪: string(64) "> OX2MS 댗v <$ ʕ i ̄ _ P \ կ= _6( m ,4WT7 a" 以下是有用的评论之后,我的代码在JavaScript中的当前状态: var encryptedPassword = CryptoJS.AES.encrypt(password, "Secret Passphrase"); var ivHex = encryptedPassword.iv.toString(); var ivSize = encryptedPassword.algorithm.ivSize; // same […]
由于某些原因,我需要实现Rijndael de / compression(块大小为256位),而不是使用128位块大小的AES(原因是:数据在PHP中使用Rijndaelencryption)。 我怎样才能改变一个密码的块大小? 如果我刚刚得到一个带有"RIJNDAEL/CFB/PKCS5Padding"的密码并试图用256位初始化一个IV,我得到一个exception,因为块大小只有128位。