Tag: encryption

Rails 5,使用加密SSL的Heroku – 配置设置时遇到问题

我正在试图弄清楚如何在heroku上使用我的rails应用程序加密。 我尝试了几个似乎旨在帮助这个过程(letsencrypt-plugin)的gem,但已经删除了那些gem推荐的所有安装步骤,因为我无法使其正常工作。 现在,我回过头来尝试理解这里列出的教程: http://collectiveidea.com/blog/archives/2016/01/12/lets-encrypt-with-a-rails-app-on-heroku/ https://medium.com/should-designers-code/how-to-set-up-ssl-with-lets-encrypt-on-heroku-for-free-266c185630db#.h9vjoxboq 我没有走远。 我正在尝试这个: https : //medium.com/should-designers-code/how-to-set-up-ssl-with-lets-encrypt-on-heroku-for-free-266c185630db#.h9vjoxboq 目前,错误消息说: Type: unauthorized Detail: The key authorization file from the server did not match this challenge [first random string.second random string] != [#{params[:id]}.ENV[“LETS_ENCRYPT_SECOND”]] To fix these errors, please make sure that your domain name was entered correctly and the DNS A record(s) for that domain […]

试图解密来自Java的attr_encrypted存储值

我有一个rails应用程序,在其中一个模型中加密(使用attr_encrypted)2个字段。 我的流程的另一部分,不是Web应用程序需要使用此数据执行某些任务(明文)。 我正在尝试从数据库中读取存储的值并解密它们但不能…… 我的模型看起来像这样: class SecretData mysecret, :algorithm => “aes-256-cbc” attr_encrypted :data2, :key=>mysecret, :algorithm => “aes-256-cbc” … end 数据库字段(encrypted_data1和encrypted_data2)充满了数据但是当我尝试解码base64(attr_encrypted默认情况下这样做)并解密时(我尝试使用命令行中的openssl并使用Java)我得到了“恶魔数”(openssl)或关于密钥长度的各种错误(在Java中)。 我花了很多时间试图解密这些字符串但却找不到方法。 这是我拥有的所有数据: encrypted + base64字符串(对于data1和data2)是: cyE3jDkKc99GVB8TiUlBxQ== sqcbOnBTl6yy3wwjkl0qhA== 我可以从它们中解码base64并得到一些字节数组。 当我尝试: echo cyE3jDkKc99GVB8TiUlBxQ== | openssl aes-256-cbc -a -d (and type “mylittlesecret” as the password) 我得到:“恶魔号” 当我尝试以下Java代码时: Key key = generateKey(); Cipher c = Cipher.getInstance(ALGO); c.init(Cipher.DECRYPT_MODE, key); byte[] decordedValue […]

Ruby方式为OAuth生成HMAC-SHA1签名

我正在编写一个小的ruby程序,可以通过OAuth与Twitter一起玩,还没有找到正确的方法来进行HMAC-SHA1签名。 到目前为止,我搞砸了 Base64.encode64(OpenSSL::HMAC.hexdigest(digest, key, stuff)).chomp 但这会输出Twitter拒绝的东西,而不是有效的签名。 我实际上以更糟糕的方式解决了它,请尽量不要打我: php -r “echo rawurlencode(base64_encode(hash_hmac(‘sha1’, ‘#{@signature}’, ‘#{llave}’, true)));” 这最后一个实际上有效,我可以四处寻找我的东西。 我想要一些关于如何在不回复PHP的情况下实际执行此操作的提示。 当我试图学习一门语言时,我不是很喜欢图书馆,所以gem几乎是不可能的。 谢谢!

用PHP加密(mcrypt),在Ruby中解密(OpenSSL :: Cipher)

我正在开发一个跨语言项目,用PHP包装ruby / Sinatra API,供其他团队使用。 API公开的信息都不敏感,但我们希望一个不经意的观察者无法轻易地访问这个信息。 private function generateSliceIDToken($key){ $currentEpoch = time(); $ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND); $encryptedBytes = mcrypt_encrypt( MCRYPT_RIJNDAEL_128, $key, $currentEpoch.**Passcode**, MCRYPT_MODE_CBC, $iv ); $ivAndEncryptedBytes = $iv . $encryptedBytes; return urlencode(urlencode(base64_encode($ivAndEncryptedBytes))); 上面的代码使用mcrypt的RIJNDAEL实现加密密码和时间戳,并对其进行编码以发送到ruby API if identifier.validate_token Base64.decode64(URI.unescape( URI.unescape(params[:token]))) Sinatra抓住它并解码它 def validate_token(token) cipher = OpenSSL::Cipher::AES.new(128, ‘CBC’) cipher.decrypt cipher.key = **key** cipher.iv = token[0,16] […]

在ruby中使用sjcl.js创建的AES解密

嗨,假设客户端有一个密钥不通过与加密数据相同的通道传输。 我想要完成的是在ruby中解密Stanford Javascript Crypto Library(sjcl)的结果。 或者用于具有支持AES的加密库的任何其他语言的泛化。 这是我在javascript中所做的事情: sjcl.encrypt(‘stack-password’, ‘overflow-secret’) 这就是我得到的回报: { “iv”: “Tbn0mZxQcroWnq4g/Pm+Gg”, “v”: 1, “iter”: 1000, “ks”: 128, “ts”: 64, “mode”: “ccm”, “adata”: “”, “cipher”: “aes”, “salt”: “pMQh7m9Scds”, “ct”: “H6JRpgSdEzKUw2qEO1+HwIzAdxGTgh0” } 所以我实际要问的是,我需要哪些参数(假设服务器已经有“stack-password”密钥)才能解密秘密服务器端,我应该使用哪个库? 可能有AES解密库是不够的?