我有一个问题,我们使用ServiceStack的Redis实现来实现多服务器缓存和通过服务器发送的事件进行消息传递。作为我们安全协议的一部分,我们需要加密进入Redis的数据。我想知道过去是否有人这样做过,他们的经历是什么?有一种简单的方法可以做到这一点,还是我们必须编写自定义的Redis实现?如果它有助于我们在Azure上使用Redis。
答案 0 :(得分:0)
您不必编写Custom Redis客户端,但您需要使用ServiceStack.Redis原始IRedisNativeClient API才能存储加密的byte[]
值。 RedisClient
继承自RedisNativeClient
,您可以投放到该byte[]
以访问低级using (var redis = clientsManager.GetClient())
{
var redisNative = (RedisNativeClient)redis;
}
API,例如:
j = c.outerjoin(pdh, pdh.c.id==c.c.cab_downhill)\
.outerjoin(puh, puh.c.id==c.c.cab_uphill)\
.outerjoin(idh, idh.c.id==pdh.c.id)\
.outerjoin(iuh, iuh.c.id==puh.c.id)
session.execute(select([c]).select_from(j).where(or_(idh.c.id == "foo", iuh.c.id == "foo"))))
ServiceStack还在其 ServiceStack.Client 库中提供了一个高级CryptUtils,它提供了一个简单的API来使用AES或RSA加密来加密值。