如何通过终端在 Ruby 中加密/解密字符串?

马腿

所以我在运行我的脚本时遇到了一些问题。

我的脚本有两个命令:-e用于加密和-d用于解密。第二个 ARGV 是非对称加密的密钥,它加密/解密的字符串只是静态的,您会'Words and Stuff'在代码中看到它

当我运行脚本时,它只是弹出空白并且没有运行命令,而当我尝试运行时-eruby encryptor.rb -e sup3rS3cretKey它只是说Invalid command '-e'; type "help" for a list. error in -e. 因此,由于我的require `openssl`声明,它似乎出于某种原因运行了 openssl,并且它不运行我的命令,似乎是因为我的脚本不是从终端运行的。那么我该如何解决这个问题,它所做的 openssl 是什么?

-脚本

require `openssl`

if ARGV[0] == '-e' #Encrypt

 if ARGV.length != 2
  puts "Please input a key."
  exit
 end

 puts "Encrypting"
 key = ARGV[1]
 cipher = OpenSSL::Cipher.new('Words and Stuff').encrypt
 cipher.key = Digest::SHA1.hexdigest key
 s = cipher.update(self) + cipher.final

 s.unpack('H*')[0].upcase
 puts "Encrypted"

elsif ARGV[0] == '-d' #Decrypt

 if ARGV.length != 2
  puts "Please input a key."
  exit
 end

 puts "Decrypting"
 key = ARGV[1]
 cipher = OpenSSL::Cipher.new('Words and Stuff').decrypt
 cipher.key = Digest::SHA1.hexdigest key
 s = [self]/pack("H*").unpack("C*").pack("c*") 

 cipher.update(s) + cipher.final
 puts "String decrypted."
end

草甸

您最初的问题是您需要带有反引号的“openssl”,因此它试图在 shell 中调用它。交换普通引号的反引号,您将使其超过该行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在php中加密和解密字符串?

来自分类Dev

如何在flutter中加密字符串并在其他设备中解密此加密字符串?

来自分类Dev

如何简单地加密和解密cookie字符串?

来自分类Dev

如何加密和解密连接字符串

来自分类Dev

如何在Java中解密加密的字符串

来自分类Dev

如何使用密钥字符串解密SHA-256加密的字符串?

来自分类Dev

如何通过字符串Ruby解析复杂的货币值

来自分类Dev

在ruby中用密码加密字符串

来自分类Dev

在ruby中用密码加密字符串

来自分类Dev

由于填充,Java 通过字符串加密/解密不起作用

来自分类Dev

如何在C Sharp中解密“使用Java加密的字符串”?

来自分类Dev

如何使解密方法能够将加密后的字符串恢复为原始状态?

来自分类Dev

如何使用Java从CryptoJS解密加密的AES-256字符串?

来自分类Dev

如何轻松加密和解密使用的字符串亭?

来自分类Dev

如何在Java中解密C#加密的AES字符串

来自分类Dev

pycrytodome如何将加密和解密的文本转换为字符串

来自分类Dev

如何使用ruby中的gets / champ登录到没有终端显示字符串的帐户?

来自分类Dev

Ruby如何增加字符串数

来自分类Dev

不使用PCLContrib,如何在可移植类库中加密字符串?

来自分类Dev

如何在asp.net C#中加密字符串

来自分类Dev

使用AESCrypt在Android中加密数据并在Ruby中解密

来自分类Dev

如何使用NodeJS中的aes-256-ecb正确加密字符串并使用OpenSSL的命令行解密?

来自分类Dev

如何在SQL Server 2008中将加密的数据转换为字符串并解密数据

来自分类Dev

如何使用NodeJS中的aes-256-ecb正确加密字符串并使用OpenSSL的命令行解密?

来自分类Dev

如何在SQL Server 2008中将加密的数据转换为字符串并解密数据

来自分类Dev

如何使用手动设置的 RSA 参数加密和解密字符串?为什么 RSACryptoServiceProvider 抛出?

来自分类Dev

将字符串加密从 Ruby 迁移到 Java

来自分类Dev

通过字符串插值动态创建Ruby变量

来自分类Dev

通过Ruby数组与文字字符串匹配

Related 相关文章

  1. 1

    如何在php中加密和解密字符串?

  2. 2

    如何在flutter中加密字符串并在其他设备中解密此加密字符串?

  3. 3

    如何简单地加密和解密cookie字符串?

  4. 4

    如何加密和解密连接字符串

  5. 5

    如何在Java中解密加密的字符串

  6. 6

    如何使用密钥字符串解密SHA-256加密的字符串?

  7. 7

    如何通过字符串Ruby解析复杂的货币值

  8. 8

    在ruby中用密码加密字符串

  9. 9

    在ruby中用密码加密字符串

  10. 10

    由于填充,Java 通过字符串加密/解密不起作用

  11. 11

    如何在C Sharp中解密“使用Java加密的字符串”?

  12. 12

    如何使解密方法能够将加密后的字符串恢复为原始状态?

  13. 13

    如何使用Java从CryptoJS解密加密的AES-256字符串?

  14. 14

    如何轻松加密和解密使用的字符串亭?

  15. 15

    如何在Java中解密C#加密的AES字符串

  16. 16

    pycrytodome如何将加密和解密的文本转换为字符串

  17. 17

    如何使用ruby中的gets / champ登录到没有终端显示字符串的帐户?

  18. 18

    Ruby如何增加字符串数

  19. 19

    不使用PCLContrib,如何在可移植类库中加密字符串?

  20. 20

    如何在asp.net C#中加密字符串

  21. 21

    使用AESCrypt在Android中加密数据并在Ruby中解密

  22. 22

    如何使用NodeJS中的aes-256-ecb正确加密字符串并使用OpenSSL的命令行解密?

  23. 23

    如何在SQL Server 2008中将加密的数据转换为字符串并解密数据

  24. 24

    如何使用NodeJS中的aes-256-ecb正确加密字符串并使用OpenSSL的命令行解密?

  25. 25

    如何在SQL Server 2008中将加密的数据转换为字符串并解密数据

  26. 26

    如何使用手动设置的 RSA 参数加密和解密字符串?为什么 RSACryptoServiceProvider 抛出?

  27. 27

    将字符串加密从 Ruby 迁移到 Java

  28. 28

    通过字符串插值动态创建Ruby变量

  29. 29

    通过Ruby数组与文字字符串匹配

热门标签

归档