2014-06-23 3 views
1

암호를 만드는 데 어려움이 있습니다. irb에서 스크립트를 실행하거나 .rb 파일로 내 ROR 응용 프로그램의 모든면이 정상적으로 작동하면 이상합니다.OpenSSL Cipher에 추가 할 수 없음

Heres my Script.

require 'openssl' 
require 'digest/sha1' 

cipher = OpenSSL::Cipher::Cipher.new("bf-cbc").encrypt 
cipher.key_len = 16 
cipher.key= "random encryption key*" 
v = cipher.random_iv.unpack("H*").first 
xs = ((cipher << Digest::SHA1.hexdigest("[email protected]")) + cipher.final).unpack("H*").first 

오류 :

NoMethodError: undefined method `<<' for OpenSSL::Cipher::Cipher:0x007f800b60c920 

나는 푸시와 < <를 교체 시도하고 내가 같은 오류가 발생합니다.

IRB
루비 : 1.8.7

응용 프로그램 세부 사항
루비 : 1.9.2
레일 : 3.0.6

사람이 전에이 문제가 발생 했습니까?

+0

'v.is_a? Array'라고 부르며 우리를 위해 놓습니다. – zishe

+0

않았다 v.is_a? Array, false를 반환합니다. 나는 그 때 v.is_a를하고 String를 돌려 보냈다. – TheBreaker

답변

1

암호에 관한 << 방법은 1.8.7에서 더 이상 사용되지 않으며 1.9에서 제거되었습니다 (docs 참조). 대신 update 메소드를 사용해야하는 것 같습니다.

기본 버전이 1.8.7이지만 레일즈 앱이 1.9 이상 실행되는 방식으로 여러 버전의 루비가 설치되어있는 것 같습니다. .ruby 버전 파일, .rvmrc 파일 또는 rails가 해당 버전 중 하나에서만 설치되기 때문일 수 있습니다.

관련 문제