小编agn*_*ter的帖子

可以使用私钥加密/使用公钥解密吗?

[免责声明:我知道,如果你对加密有任何了解,你可能会告诉我为什么我做错了 - 我已经做了足够的谷歌搜索,知道这似乎是典型的反应.]

假设以下内容:您有一个中央权限,想要为给定域发出登录cookie.在此域上,您不一定信任所有人,但您有一些能够读取cookie的关键端点.我说了一些,但在实践中,这些"可信"的合作伙伴可能很大.Cookie不包含太多信息 - 用户名,时间戳,到期日,随机数.当然,出于性能原因,即使在加密后(在合理范围内),它仍应保持很小.现在,有两个安全问题:

1)我们不信任此域上的每个网络服务器都有用户数据.因此,读取cookie的能力应仅限于这些可信赖的合作伙伴.2)虽然我们相信这些合作伙伴能够保护我们用户的数据,但我们仍然希望权威的中心点是不可伪造的(同样在合理范围内).

现在,如果我们为权限生成私有RSA密钥并保密,并将公钥仅分发给"可信伙伴",我们应该能够使用私钥进行加密,并且任何拥有公钥的人都可以读取它. .我不清楚的是,是否仍然需要签署该消息,或者解密行为是否是使用私钥生成的证据?这种方案的优点还是比向所有相关方传播对称密钥并使用它加密更好或更差,而使用私钥只是为了签名?当然可以随意告诉我这是一个愚蠢的想法,但请记住,实际的论点可能比重塑爱丽丝和鲍勃更有说服力.

哦,并且实现指针是受欢迎的,尽管可以在Google上找到基础知识,如果有任何"陷阱"可能会有用!

cookies openssl cryptography rsa

24
推荐指数
3
解决办法
4万
查看次数

如何在Bundler中使用"gemspec"规则,同时仍然使用gem的本地签出?

场景:我正在gem-foo使用Bundler 开发一个gem .我有一个依赖gem-bar,我已经在本地检查开发.我可以在Gemfileas中声明这个依赖:

gem "gem-bar", :path => "/path/to/local/gem-bar"
Run Code Online (Sandbox Code Playgroud)

然而,在开发宝石时,"最佳实践"似乎是在gem-foo.gemspec通道中定义所需的宝石:

s.add_runtime_dependency 'gem-bar'
Run Code Online (Sandbox Code Playgroud)

然后简单地在Gemfile使用中包含依赖项:

gemspec
Run Code Online (Sandbox Code Playgroud)

我想要做的是在gemspec中添加对gem的运行时依赖性,但是对其进行一些本地修改gem-barbundle install使用本地开发结帐.假设我控制两个宝石的情况,并且我在某种程度上同时攻击它们,我将同时推动新版本.我可能只是注释掉s.add_runtime_dependency在gemspec并与在Gemfile中的本地路径添加它,但那种感觉......容易出错?gemspec 应该总是声明这个依赖项,并且Gemfile应该能够覆盖Bundler应该用于gem的位置.但是,如果您实际执行此操作,则会收到以下错误:

您不能指定来自不同来源的相同gem两次.您指定gem-bar(> = 0)应来自未指定的源和/ path/to/local/gem-bar的源

理想情况下,我只是有一些本地覆盖,因为我从来不想要我不小心推动宝石需要gem-bar在特定路径上的本地.那会很愚蠢.

有没有人对这个用例有一个很好的解决方案?

ruby gem rubygems bundler

19
推荐指数
1
解决办法
4487
查看次数

是否有一个方法可以覆盖JavaScript对象来控制console.log显示的内容?

我特别想到Chrome,虽然Firebug很有意思.我尝试过toString()和valueOf(),但似乎都没有使用过.有趣的是,如果我接受一个函数它将显示函数定义 - 但是如果我添加一个toString()方法它将显示null!

var a = function(){};
console.log(a); // output: function (){}
a.toString = function(){ return 'a'; };
console.log(a); // output: null
a.valueOf = function(){ return 'v'; };
console.log(a); // output: null
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

javascript firebug google-chrome

10
推荐指数
1
解决办法
1638
查看次数

在Bash中预填充提示

编写一个bash脚本,我希望得到用户输入.真棒,

read -p "What directory should we save in? " -e FOLDER
Run Code Online (Sandbox Code Playgroud)

除了我想要做的事情,理想情况下,让用户看到类似的东西:

What directory should we save in? /home/user/default/
Run Code Online (Sandbox Code Playgroud)

将光标放在行尾,以及向后删除或追加或删除的能力.基本上,预填充用户的输入,但让他们能够编辑它.

Readline显然具有该功能,但它似乎没有在read命令中公开.任何替代品?我宁愿不必使用perl等.

我正在努力的约束是我正在编写一个很好的广泛传播的shell脚本,因此应该尽可能少地依赖于预先存在的基础架构.rlwrapread -i这两个工作,如果它们的依赖关系(rlwrap和bash版本>>不管我有分别,)可供选择.两个好的答案,选择适合你的.

bash

7
推荐指数
2
解决办法
3258
查看次数

用于快速位置查找的数据结构

寻找逻辑上表示由唯一ID键入的元素序列的数据结构(为了简单起见,我们将它们视为字符串,或至少是可清除对象).每个元素只能出现一次,没有间隙,第一个位置为0.

应支持以下操作(使用单字母字符串演示):

  • insert(id, position)- 将键入的元素添加id到偏移量的序列中position.当然,序列中稍后的每个元素的位置现在增加1.例:[S E L F].insert(H, 1) -> [S H E L F]
  • remove(position)- 删除偏移处的元素position.将序列中稍后的每个元素的位置减一.例:[S H E L F].remove(2) -> [S H L F]
  • lookup(id)- 找到键入的元素的位置id.[S H L F].lookup(H) -> 1

天真的实现可以是链表或数组.双方将给出O(N) lookup,removeinsert.

在实践中,lookup很可能是使用最多,insertremove发生足够频繁,这将是不错不是线性的(其中的HashMap +阵列/列表的简单组合会让你).

在一个完美的世界中,它将是O(1)lookup,O(log n)insert/ remove,但我实际上怀疑从纯粹的信息理论角度来看是不行的(尽管我还没有尝试过),所以O(log n )lookup仍然会很好.

language-agnostic data-structures

7
推荐指数
1
解决办法
1558
查看次数