草庐IT

pseudo-typedef

全部标签

php - 什么使 openssl_random_pseudo_bytes "cryptographically secure"?

我一直被告知在给密码加盐时应该使用openssl_random_pseudo_bytes。但我真正想知道的是,是什么让它在密码学上是安全的。rand之间的内部区别是什么?,mt_rand和openssl_random_pseudo_bytes?提前致谢。 最佳答案 区别简而言之:rand使用libc随机数生成器(source),它取决于系统并且通常不是加密安全的mt_rand使用已知算法,MersenneTwister,由此得名;这是一种快速算法,可以生成分布良好但不是加密安全的随机数openssl_random_pseudo_by

PHP - 用 openssl_random_pseudo_bytes() 替换 mcrypt_create_iv()

我需要提高我们网站的安全性,目前正在使用此处的指南:http://crackstation.net/hashing-security.htm,以及此处生成的随secret码:https://defuse.ca/generating-random-passwords.htm.我收集到两者都使用函数mcrypt_create_iv()生成随机字节(或位?),但出于某种原因,我在CentOS6下安装php-mcrypt时遇到错误。幸运的是,第一个链接说openssl_random_pseudo_bytes()是一个CSPRNG(PHP文档和其他来源也支持该声明),并且在当前服务器安装的PHP

c++ - "typedef sometype sometype"有什么意义?

最近我在代码中遇到了以下结构:typedefsometypesometype;请注意,“sometype”代表完全相同的类型,没有任何添加,如“struct”等。我想知道它有什么用?UPD:这仅适用于用户定义的类型。UPD2:实际代码在这样的模板上下文中:templatestructE{typedefTT;...} 最佳答案 如何使模板参数对外部实体可见?templatestructBar{typedefFooFoo;};intmain(){Bar::Foofoo=4;}注意:这在标准C++中实际上是不允许的,但它是MSVC特有的。

c++ - typedef'ing 函数 *signature* (不是指向的指针),以便它可以被重用?

编辑:动机假设我将一个处理程序类定义为classHandler{public:classMessage{/*...*/};typedefint(*Callback)(Message*msg);voidregisterCallback(intmsgclass,Callbackf);};客户端可以做intf1(Handler::Message*msg){/*handlemessage*/}intf2(Handler::Message*msg){/*handlemessage*/}intmain(){Handlerh;h.registerCallback(1,f1);h.registerCa

C++:如果替换 typedef,可以解决不明确的重载

考虑以下用于vector和矩阵乘法的代码片段:#includetemplateusingvec=std::array;templateusingmat=vec,N>;templatevecoperator*(constvec&a,constvec&b){return{};//implementcomponentwisemult.}templatematoperator*(constmat&a,constmat&b){return{};//implementmatrixmult.}intmain(){mata,b;autoc=a*b;}我定义2operator*重载,其中第二个显式使用矩

c++ - 用 typedef 重载会报错

考虑以下类型:#includetypedefunsignedlonglongusize_t;typedefunsigned__int16uword_t;typedefuword_tclockval_t;//timewithoutsecondsinformatHHMMstd::stringtoString(clockval_tnClock){returnstd::to_string((usize_t)nClock/100)+":"+std::to_string((usize_t)nClock%100);}std::stringtoString(uword_tnValue){returns

c++ - 是否有 high_resolution_clock 不是 typedef 的标准库实现?

20.12.7.3的C++草案内容如下:high_resolution_clockmaybeasynonymforsystem_clockorsteady_clock当然这可能没有强制要求,但我想知道:high_resolution_clock对于typedef以外的东西有什么意义吗?有这样的实现吗?如果设计出一个滴答周期较短的时钟,它可以是稳定的也可以是不稳定的。因此,如果存在这样的机制,我们是否也想“改进”system_clock和high_resolution_clock,再次默认为typedef解决方案? 最佳答案 规范之所

c++ - 使用来自元函数的 typedef 声明成员函数

考虑以下代码:templatestructFoo_s{usingtype=void();};templateusingFoo_u=void();templatestructBar{Foo_ufoo1;//OKtypenameFoo_s::typefoo2;//OKFoo_ufoo3;//OKtypenameFoo_s::typefoo4;//Boom.};templatestructBar;foo4的声明在GCC7.2、Clang5.0.0和MSVC19.10.25017上失败。海湾合作委员会::Ininstantiationof'structBar':18::18:17:requir

c++ - 为什么当一个模板类继承另一个模板类时,需要重新指定typedefs和函数调用限定?

当一个模板类继承另一个模板类时,基类中的typedef必须重新定义(即不会自动继承),基类中的函数调用需要限定。这是为什么?这不是已经很明确了吗?因此,如果我有20个模板类,都定义了相同的typedef,我将无法引入包含这些定义的基类并从中继承,因为无论如何我都必须在每个类中重新定义typedef,这会破坏目的。这使得源代码变得不必要地冗长。我可以看到这已在question中讨论过,但我不明白评论TheC++namelookuprulesspecifythatanameisonlysearchedinatemplatedbaseclassesifitdependsonatemplate

c++ - 为什么 typedef 模板是非法的?

从实际的角度来看,我理解typedef和test都有些“多余”,如果我们要编译以下代码,则需要将其删除:templatetypedefstructtagTest{inta;}test;但是,我认为typedef声明集是声明集的子集。他们只是碰巧有那个特定的decl-specifier。这是我的合理化typedefstructtagTest{inta;}test;引入标识符test并声明结构tagTest。如果该解释是正确的,那么标准中的以下段落应该允许templatetypedef(尽管不是关键字using给出的含义)>).Thedeclarationinatemplate-decla