上周我读了很多关于密码哈希和Blowfish的文章,似乎是(现在)最好的哈希算法之一 - 但这不是这个问题的主题!
Blowfish只考虑输入密码中的前72个字符:
<?php
$password = "Wow. This is a super secret and super, super long password. Let's add some special ch4r4ct3rs a#d everything is fine :)";
$hash = password_hash($password, PASSWORD_BCRYPT);
var_dump($password);
$input = substr($password, 0, 72);
var_dump($input);
var_dump(password_verify($input, $hash));
?>
Run Code Online (Sandbox Code Playgroud)
输出是:
string(119) "Wow. This is a super secret and super, super long password. Let's add some special ch4r4ct3rs a#d everything is fine :)"
string(72) "Wow. This is a super secret and super, super long password. Let's add …Run Code Online (Sandbox Code Playgroud) 正如你可以通过互联网阅读使用浮动代表货币是一个非常糟糕的主意.建议的最佳做法是使用代表美分的整数.这样就可以安全地避免遇到任何精度问题,尤其是在进行一些计算时.
因为我天真而且过于乐观,我选择了 - 尽管有所有警告 - 浮动代表我的应用程序中的货币.起初它进展顺利.现在我遇到了各种各样的问题(特别是比较),并希望从浮点数切换到整数.
不幸的是,angular不支持分整数作为货币过滤器的输入(至少据我所知).我有点惊讶,到目前为止看起来没有人提出这个问题(github上没有相应的问题,SO等都没有).
有没有最佳做法?您是否可以想到像这样的简单过滤器可能具有的任何缺点:
angular
.module('myApp')
.filter('cents', ['$filter', function($filter) {
return function(cents, symbol, fractionSize) {
var asFloat = cents / 100;
return $filter('currency')(asFloat, symbol, fractionSize);
};
}]);
Run Code Online (Sandbox Code Playgroud) 您可能正在搜索Error running '__rvm_make -j 1'
\n那只是说,编译 ruby 时出了问题。openssl仅当和/或ossl_ssl属于您的错误消息的一部分时,此问题才与您相关。
\n但也许你的问题是类似的的,您可以通过一些自定义来解决您的问题。
背景
\n今天我想删除项目的所有 gem,但忘记事先指定捆绑器的路径,因此所有 gem 都安装在~/.rvm/gems/ruby-2.2.4/gems/.
因为它是唯一的 ruby 2.2.4 项目,我认为这rm -rf ~/.rvm/gems/ruby-2.2.4/gems/*会很好。事实并非如此。捆绑者走了,gem install bundler也不再工作了。
我删除了孔红宝石安装rvm remove ruby-2.2.4尝试重新安装它。这是控制台输出,其中包含我收到的错误:
控制台输出
\n\n> rvm install ruby-2.2.4\nSearching for binary rubies, this might take some time.\nNo binary rubies available for: osx/10.11/x86_64/ruby-2.2.4.\nContinuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.\nChecking requirements for …Run Code Online (Sandbox Code Playgroud) 是否可以通过 为多对多关系的属性包含模型through?
假设我有以下模型:
User = sequelize.define('user', {/* attributes */});
Question = sequelize.define('question', {/* attributes */});
Answer = sequelize.define('answer', {/* attributes */});
/* Where */
Question.hasMany(Answer);
Answer.belongsTo(Question);
Run Code Online (Sandbox Code Playgroud)
我想为每个用户保存他对问题的回答。所以我添加了以下关系:
UserQuestionAnswerRel = sequelize.define('usersAnwers', {
user: {/**/},
question: {/**/},
answer: {/**/}
});
User.hasMany(Question, { through: UserQuestionAnswerRel });
Run Code Online (Sandbox Code Playgroud)
现在我想查询接收他回答的所有问题和他给出的答案的用户。但这如何运作?不幸的是,这不起作用:
User.findAll({
include: {
model: Question,
through: { include: model.Answer }
}
}).then /* */
Run Code Online (Sandbox Code Playgroud)
请注意:所有这些问答内容只是一个例子。我不可能不使用through关系。