我的环境,
% openssl version
OpenSSL 0.9.8r 8 Feb 2011
% curl --version
curl 7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IPv6 Largefile NTLM NTLM_WB SSL libz
% rails -v
Rails 3.0.3
% ruby -v
ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-darwin12.2.0]
% rvm --version
rvm 1.15.0 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
omniauth version is '0.2.6'
Run Code Online (Sandbox Code Playgroud)
然后我通过facebook使用omniauth登录并获得以下错误. …
我需要使用'rijndael-128-cbc'算法解密由php加密的数据。
现在我在将 php 代码转换为 ruby 代码时遇到了问题。ruby OpenSSL::Cipher 不支持 rijndael-128-cbc 然后我使用“aes-128-cbc”。我听说 AES 基于 Rijndael 密码,所以我想我可以将 rijndael-128-cbc' 的解密转换为 AES-128-CBC。
enc = OpenSSL::Cipher.new "AES-128-CBC"
enc.encrypt
puts enc.key_len
Run Code Online (Sandbox Code Playgroud)
它的输出是 16
然而,在 php
echo mcrypt_get_key_size('rijndael-128', 'cbc')
Run Code Online (Sandbox Code Playgroud)
这得到 32
“rijndael-128”和“AES-128-CBC”之间有什么区别吗?
以及如何将 rijndael-128-cbc 描述转换为 ruby?
我的环境
ruby 2.0.0-p195
rails (4.0.0.rc1)
activerecord (4.0.0.rc1)
Run Code Online (Sandbox Code Playgroud)
我想通过id数组对ActiveRecord对象进行排序.我尝试了按字段顺序.
ids = [1,4,2,3]
Foo.where(id: ids).order('FIELD(id, ?)', ids)
Run Code Online (Sandbox Code Playgroud)
然而它失败了.
Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?,?,?,?}), ö, ÷, ï, ñ' at line 1:
Run Code Online (Sandbox Code Playgroud)
然后我试试
ids = [1,4,2,3]
Foo.where(id: ids).order('FIELD(id, #{ids.join(","))')
Run Code Online (Sandbox Code Playgroud)
它当然是成功的.但是我担心它可能有SQL注入风险,因为数组ID是从会话值生成的.
有没有更好更安全的方法?
提前致谢.