小编mar*_*ona的帖子

服务器端Google登录,使用Google管理的机密加密/解密数据的方式?

在服务器端使用Google登录库并获得GoogleIdToken来验证用户的身份是相当简单的.但是,我想用我们数据库中的每个用户数据加密一个每个用户都独有的秘密.是否有捷径可寻?如果不使用Google登录,您可以从用户的密码中获取密钥,但这显然不可能.

authentication encryption oauth google-signin

9
推荐指数
1
解决办法
422
查看次数

顶级Visual Studio 2010 C/C++扩展

在C/C++中,VS2010开发的必备扩展有哪些?我不是在寻找与C#,ASP.NET等相关的任何东西.只是与老式的C/C++工作有关的东西.或者具有普遍吸引力的东西.

我现在使用的两个扩展是:

  • H3 Viewer(免费,使帮助可用,有点)
  • Visual Assist X($$$但值得每一分钱.本来应该是Intellisense.这不是插件,我只是他们的客户,有几百个许可证.)

还有别的吗?关闭选民的注意事项:7个月前有一个类似的线程.这是过时的,2)太吵了.你不能"推荐"40个扩展.3)通用且与C/C++无关.Resharper可能很酷,但我对托管代码没什么兴趣.

visual-studio-2010 visual-studio visual-c++

6
推荐指数
1
解决办法
4381
查看次数

折叠 __mask64 又名 64 位整数值,计算已设置所有位的半字节?

我有__mask64一些 AVX512 操作的结果:

__mmask64 mboth = _kand_mask64(lres, hres);

我想计算其中所有位均已设置的半字节数 ( 0xF)。

简单的解决方案是这样做:

uint64 imask = (uint64)mboth;
while (imask) {
    if (imask & 0xf == 0xf)
        ret++;
    imask = imask >> 4;
} 
Run Code Online (Sandbox Code Playgroud)

我想要更好的东西,但我想出的东西并不优雅:

    //outside the loop
    __m512i b512_1s = _mm512_set1_epi32(0xffffffff);
    __m512i b512_0s = _mm512_set1_epi32(0x00000000);

    //then...
    __m512i vboth = _mm512_mask_set1_epi8(b512_0s, mboth, 0xff);
    __mmask16 bits = _mm512_cmpeq_epi32_mask(b512_1s, vboth);
    ret += __builtin_popcount((unsigned int)fres);
Run Code Online (Sandbox Code Playgroud)

上面将一个0xff字节放入一个向量中,其中掩码中存在 1 位,然后当现在发现bits放大的半字节为' 时,在掩码中获取一个 1 位。0xf0xffffffff int32

我觉得当原始数据存在于 64 位数字中时,两个 512 …

c++ bit-manipulation avx avx512

3
推荐指数
1
解决办法
169
查看次数