ruby 解决 php aes 与 ruby aes zero 算法不用的问题
来源:互联网 发布:曹县大集淘宝村 编辑:程序博客网 时间:2024/06/07 01:43
gemfile 加如下代码
gem"ruby-mcrypt"
使用
require 'mcrypt'module Crypt def self.append_features(base) super base.extend(AesBase64) end module AesBase64 # require 'openssl' # require 'base64' # require 'hex_string' KEY = 'xyz' #you key
IV = "123" # you iv def encrypt(data) crypto = Mcrypt.new(:rijndael_128, :cbc, KEY, IV, :zeros) enc = crypto.encrypt(escape(data)) # use for latter # aes = OpenSSL::Cipher::AES128.new('CBC') # aes.padding = 0 # aes.encrypt # aes.key = KEY # aes.iv = IV # enc = aes.update(data) << aes.final Base64.strict_encode64(enc) end def decrypt(data) base64 = Base64.strict_decode64(data) crypto = Mcrypt.new(:rijndael_128, :cbc, KEY, IV, :zeros) crypto.decrypt(base64) # use for latter # dec = Base64.strict_decode64(data) # aes = OpenSSL::Cipher::AES128.new('CBC').decrypt # aes.padding = 0 # aes.key = KEY # aes.iv = IV # aes.update(dec) << aes.final end def escape(string) if string.respond_to?(:force_encoding) string = string.encode(::Encoding::UTF_8, :undef => :replace).force_encoding(::Encoding::BINARY) end json = string. # gsub(escape_regex) { |s| ESCAPED_CHARS[s] }. gsub(/([\xC0-\xDF][\x80-\xBF]| [\xE0-\xEF][\x80-\xBF]{2}| [\xF0-\xF7][\x80-\xBF]{3})+/nx) { |s| s.unpack("U*").pack("n*").unpack("H*")[0].gsub(/.{4}/n, '\\\\u\&') } json = %(#{json}) json.force_encoding(::Encoding::UTF_8) if json.respond_to?(:force_encoding) json end endend
0 0
- ruby 解决 php aes 与 ruby aes zero 算法不用的问题
- Php aes算法
- PHP中的AES算法
- PHP的AES/RSA加密解密算法
- PHP程序的AES加密解密算法
- 【php】 AES算法php实现
- php 的aes加密
- PHP的AES加密
- PHP-AES加密解密算法
- php解决aes,base64后的json字符串json_decode为null的问题
- php与java通用AES加密解密算法
- php与java通用AES加密解密算法
- [转]php与java通用AES加密解密算法
- php与java通用AES加密解密算法
- php与java通用AES加密解密算法
- python与ruby的问题
- PHP AES
- AES 加密算法与解密算法
- HDU
- 物联网技术入门——系列文章2
- 每天一个Linux命令(44):iostat
- bzoj2431: [HAOI2009]逆序对数列
- Codeforces Round #408 (Div. 2)(A+B)模拟
- ruby 解决 php aes 与 ruby aes zero 算法不用的问题
- MySQ基本操作
- 留言板实例-验证ID和邮箱
- C++抽象编程——如何修改map中的值
- 图像技术分类一图通
- C语言中变量的存储方式
- IO 编程模型(java篇) 精华一页纸
- 用openssl实现DES和AES算法时遇到的小问题
- 线性回归(linear regression)