我必须实现客户端和服务器以进行端到端加密。
因此,如果我被正确通知,我需要使用Base64对我的密钥进行编码和解码。
ArgumentError(字符串包含空字节): app / controllers / users_controller.rb:46:在`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
,但我不太确定。
我真的很感激任何帮助。我没有在互联网上找到解决我问题的任何内容。
感谢。
答案 0 :(得分:0)
您可能遇到this错误,导致您无法使用嵌入的空值存储数据。
我只是按原样存储密钥(即以Base64格式),因为它没有空值。然后......在使用之前需要密钥操作的密钥时只需要Base64.decode64(@ user.privkey_user_enc)。
Base64只是一种将二进制数据转换为可以轻松存储/传输的文本字符串的机制