由于ruby与rails版本差异,可能会出现在使用低版本的rails时,出现不能连接mysql的情况。
现象:ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/vendor/mysql.rb:566:in `initialize’: wrong number of arguments (1 for 0) (ArgumentError)
解决方法
def scramble41(password, message)
return 0×00.chr if password.nil? or password.empty?
buf = [0x14]
#s1 = Digest::SHA1.new(password).digest
s1 = Digest::SHA1.new
s1 << password
s1 = s1.digest
#s2 = Digest::SHA1.new(s1).digest
s2 = Digest::SHA1.new << s1
s2 = s2.digest
#x = Digest::SHA1.new(message + s2).digest
x = Digest::SHA1.new << (message + s2)
x = x.digest
(0..s1.length – 1).each {|i| buf.push(s1[i] ^ x[i])}
buf.pack(“C*”)
end
您可能感兴趣的文章
RSS Feed
Twitter
February 20th, 2010
moonfox
Posted in
Tags: