Rails Base64解码
Rails Base64 decoding
我必须实现端到端加密的客户端和服务器。
因此,如果我得到正确的通知,我需要使用 Base64 对我的密钥进行编码和解码。
ArgumentError (string contains null byte):
app/controllers/users_controller.rb:46:in `register'
这是我在请求到达我的服务器后立即得到的。
这就是我编写的代码。
43 tempkey = Base64.decode64(params[:privkey_user_enc])
44 @user = User.new(:identity => params[:identity], :salt_masterkey => params[:salt_masterkey], :pubkey_user => params[:pubkey_user], :privkey_user_enc => tempkey)
45 if !(User.find_by_identity(@user.identity))
46 if @user.save
以及关键的片段:
LSFzoeT/7VLtWCQHEx3p3Nz3AfC7toACKRWELNC5E6CtSEsp6pZ7b4zldP\n2J5otJjjGSmVgg7e8XtndpAoI6ZJdBr/XeMoKNID9bs1kiWw2BAOduTWJ37a\nBAurnBZlOGycwvRXPmSDbMLSEyuCf53UTpskIhCkLDv21rW2qklIVC22Z+k6\n3dSRYZ5dQjPwhdfkaUgXwcRQFMazbdw/RSSNH0twcax7msHZms2iVlgvjElN\n+qi5Iu77J3DZCOE2fAo06WXALQfG2gOuzTWwlsVOW+iwj/tMypYzEAu+Y+kx\n51M0XlwRgAyRSqg7MMyT8OGC/jtJgc1A8gwSn7pz9cSnTCFUFh1eulE4pLpS\n4Gxm30aqHPCpNgvjJssNdntbdMxn10mfg7wzJNvSeFof90rSZb+PNWwvlYBZ\nQLjB1J9myQwq1+ptzvcgeskaRaGBWpSXyeo2HUCcsRNbajqjSViyheKKMWDb\n7H6tdlrIE+d1XcwIvczU9DbgtIB8gy8PBL6XI5KLSq9gzy/TSVahCeqURyA4\nnmT2luNxdggQLc7aY0aL03vNl5dun0Xem2rVCI3lFo2e4WH
我想我可能已经将问题缩小到 tempkey
但我不太确定。
如果有任何帮助,我将不胜感激。我在 Internet 上找不到任何解决我问题的方法。
谢谢。
您可能 运行 进入 this 错误,该错误阻止您存储带有嵌入空值的数据。
我将按原样存储密钥(即以 Base64 格式),因为它没有空值。然后...当您需要加密操作的密钥时,只需在使用前使用 Base64.decode64(@user.privkey_user_enc)。
Base64 只是一种将二进制数据转换为文本字符串的机制,可以很容易地 stored/transmitted
我必须实现端到端加密的客户端和服务器。
因此,如果我得到正确的通知,我需要使用 Base64 对我的密钥进行编码和解码。
ArgumentError (string contains null byte): app/controllers/users_controller.rb:46:in `register'
这是我在请求到达我的服务器后立即得到的。
这就是我编写的代码。
43 tempkey = Base64.decode64(params[:privkey_user_enc])
44 @user = User.new(:identity => params[:identity], :salt_masterkey => params[:salt_masterkey], :pubkey_user => params[:pubkey_user], :privkey_user_enc => tempkey)
45 if !(User.find_by_identity(@user.identity))
46 if @user.save
以及关键的片段:
LSFzoeT/7VLtWCQHEx3p3Nz3AfC7toACKRWELNC5E6CtSEsp6pZ7b4zldP\n2J5otJjjGSmVgg7e8XtndpAoI6ZJdBr/XeMoKNID9bs1kiWw2BAOduTWJ37a\nBAurnBZlOGycwvRXPmSDbMLSEyuCf53UTpskIhCkLDv21rW2qklIVC22Z+k6\n3dSRYZ5dQjPwhdfkaUgXwcRQFMazbdw/RSSNH0twcax7msHZms2iVlgvjElN\n+qi5Iu77J3DZCOE2fAo06WXALQfG2gOuzTWwlsVOW+iwj/tMypYzEAu+Y+kx\n51M0XlwRgAyRSqg7MMyT8OGC/jtJgc1A8gwSn7pz9cSnTCFUFh1eulE4pLpS\n4Gxm30aqHPCpNgvjJssNdntbdMxn10mfg7wzJNvSeFof90rSZb+PNWwvlYBZ\nQLjB1J9myQwq1+ptzvcgeskaRaGBWpSXyeo2HUCcsRNbajqjSViyheKKMWDb\n7H6tdlrIE+d1XcwIvczU9DbgtIB8gy8PBL6XI5KLSq9gzy/TSVahCeqURyA4\nnmT2luNxdggQLc7aY0aL03vNl5dun0Xem2rVCI3lFo2e4WH
我想我可能已经将问题缩小到 tempkey
但我不太确定。
如果有任何帮助,我将不胜感激。我在 Internet 上找不到任何解决我问题的方法。
谢谢。
您可能 运行 进入 this 错误,该错误阻止您存储带有嵌入空值的数据。
我将按原样存储密钥(即以 Base64 格式),因为它没有空值。然后...当您需要加密操作的密钥时,只需在使用前使用 Base64.decode64(@user.privkey_user_enc)。
Base64 只是一种将二进制数据转换为文本字符串的机制,可以很容易地 stored/transmitted