使用ServiceStack在Azure上加密Redis消息

时间:2017-07-05 19:31:38

标签: azure redis servicestack servicestack.redis azure-redis-cache

我有一个问题,我们使用ServiceStack的Redis实现来实现多服务器缓存和通过服务器发送的事件进行消息传递。作为我们安全协议的一部分,我们需要加密进入Redis的数据。我想知道过去是否有人这样做过,他们的经历是什么?有一种简单的方法可以做到这一点,还是我们必须编写自定义的Redis实现?如果它有助于我们在Azure上使用Redis。

1 个答案:

答案 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加密来加密值。