我正在使用ActiveSupport :: MessageEncryptor生成我的令牌加密,并使用此加密令牌进行缓存。问题是ActiveSupport :: MessageEncryptor为每个调用生成相同数据的不同加密,如下所示。关于如何避免这种情况的任何建议。
2.3.1 :029 > key = "f5c1d61058d7cee6c886063f4f7f4589ea021928ea2f265dc5a6d8605e50478976cbdae25ddffaa59fe8a8c5a0683d32d66f845decd056f5be6da7cfcf7f9bc3"
=> "f5c1d61058d7cee6c886063f4f7f4589ea021928ea2f265dc5a6d8605e50478976cbdae25ddffaa59fe8a8c5a0683d32d66f845decd056f5be6da7cfcf7f9bc3"
2.3.1 :030 > data = "5ae545f655cfac10b50a07cc1055b43ac7f6067e5ea7320332720d6359e538ca"
=> "5ae545f655cfac10b50a07cc1055b43ac7f6067e5ea7320332720d6359e538ca"
2.3.1 :031 > encrypter = ActiveSupport::MessageEncryptor.new(key)
=> #<ActiveSupport::MessageEncryptor:0x000000067bafb0 @secret="f5c1d61058d7cee6c886063f4f7f4589ea021928ea2f265dc5a6d8605e50478976cbdae25ddffaa59fe8a8c5a0683d32d66f845decd056f5be6da7cfcf7f9bc3", @sign_secret=nil, @cipher="aes-256-cbc", @verifier=#<ActiveSupport::MessageVerifier:0x000000067badf8 @secret="f5c1d61058d7cee6c886063f4f7f4589ea021928ea2f265dc5a6d8605e50478976cbdae25ddffaa59fe8a8c5a0683d32d66f845decd056f5be6da7cfcf7f9bc3", @digest="SHA1", @serializer=ActiveSupport::MessageEncryptor::NullSerializer>, @serializer=Marshal>
2.3.1 :032 > encrypter.encrypt_and_sign(data)
=> "c1NCTzR6bFhtYW53WFZpK242RnlTdkhrM2VKa2hxM1BkSUl3MFV0cmYrZ2dzMW0vQW1iWEhjYTRJdXFIa081NXNsM1h3OGNrYTZUMHo3bnhyRDBVc0MwVnB6Q2lJaHEvbFU4V1dqdjhhd3c9LS1oaWZ4VXp5YndLMUZ0cWcwRzJhTHVnPT0=--d4bb2c1936cfc414039db49d99a69649785221a7"
2.3.1 :033 > encrypter.encrypt_and_sign(data)
=> "UG9aN0ZEK01nTkVENDQ0dnlhdENyL3BzTFJkYnJ2eWEwNnE4YVZ6L2tkNlkrbGtpOGR4QWx4MlE1M1RNenMvWDBuTHE1b212K2p3ZzZvbE45bUl5by9ZdkJNYkdTQ2NBcGxYSEExb0ZJRk09LS1LZTNCSDlaVEoyRGNTYXQzeENGRjN3PT0=--9dacde056a9b2387afb94df6759822f6effbd077"
2.3.1 :034 > encrypter.encrypt_and_sign(data)
=> "dERlR1UvUkFpb3RIUWFyRUFoZVpHY1RWV3REWW5lYXB1eGw2U0NnV2Vhc3NXV2RSNmhKUDBXZXZFc2JDN2lIRjFvZElxSy9yQ3pYWEJCNndJMFVwbnlsckVYSkgzdkN2eGVEMEJ1V09QdjA9LS1yc0JhL0tZaSttdmZPWVhQcXFMWVFBPT0=--b8968961a69b6803579f902a48f75b43d8b1a242"