小编Gre*_*ill的帖子

以可逆形式存储密码

我有一个PHP应用程序需要运行bash脚本,并提供用户名和密码(用于远程系统).我需要将这些凭据存储在我的PHP(Web)应用程序可访问的某个位置.逻辑位置是数据库(目前是MySQL,但是不可知).散列和存储凭证的"标准"方式的问题在于它是不可逆的.我必须能够以未加密的明文形式获取凭证,以便能够将数据插入到bash脚本中.

有没有人有任何建议可以安全地解决这个问题?

我想也许是PKI的凭证,并将结果存储在DB中.然后使用私钥解密(PHP可以这样做).存储脚本以在Web根目录外执行此操作.

任何想法都非常感激.

php passwords storage

17
推荐指数
2
解决办法
5267
查看次数

使用函数参数作为局部变量

这样的事情(是的,这不涉及一些边缘情况 - 这不是重点):

int CountDigits(int num) {
    int count = 1;
    while (num >= 10) {
        count++;
        num /= 10;
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

你对此有何看法?也就是说,使用函数参数作为局部变量.
两者都放在堆栈上,性能几乎相同,我想知道这方面的最佳实践方面.
当我为这个函数添加一个额外的冗余线路时,我觉得自己像个白痴int numCopy = num,但它确实让我感到烦恼.
你怎么看?这应该避免吗?

local-variables function-parameter

17
推荐指数
3
解决办法
4043
查看次数

与Gerrit一起使用时如何为Git配置特定的上游push refspec?

我正在使用Gerrit Code Review设置Git,并且正在寻找一种方法,为可能不熟悉Git的用户提供必要的Git命令.

我目前用于启动新功能分支的命令基本上是(假设Gerrit是origin):

git checkout baseline
git pull
git checkout -b work1234
git push -u origin work1234
Run Code Online (Sandbox Code Playgroud)

这将启动一个新的工作包work1234从一些baseline分支,最后的推动在Gerrit中创建分支并设置上游.所以.git/config看起来像:

[branch "work1234"]
        remote = origin
        merge = refs/heads/work1234
Run Code Online (Sandbox Code Playgroud)

现在,Gerrit希望将新的提交审查推送到特殊的refspec,refs/for/work1234例如.我可以手动执行以下操作:

git push origin work1234:refs/for/work1234
Run Code Online (Sandbox Code Playgroud)

我想要做的是找到一些设置方法,.git/config以便plain git push将当前分支推送到Gerrit所需的远程refspec.我看过以下几个git config方面:

  • branch.<name>.* - 似乎没有任何特定的选项来设置push refspec
  • push.default- 我想要upstream在这里
  • remote.<name>.push- 我refs/heads/*:refs/for/*在这里试过但git push总是想在这种情况下推送所有本地分支,而我只想要当前的分支

如果我不能让Git的本身做到这一点,我会写一个小包装脚本,完全指定refspecs.但是,如果Git能够本地推向正确的位置会更好.

git push gerrit refspec

17
推荐指数
1
解决办法
8839
查看次数

Amazon S3独立存根服务器

我似乎记得读过有关与Amazon S3兼容的测试服务器,您可以在自己的服务器上运行以进行单元测试或其他任何操作.但是,我刚刚用谷歌和AWS来耐心等待这一点.这样的事情存在吗?如果没有,我想我会写一个.

注意:我问的是Amazon S3(存储系统)而不是Amazon EC2(云计算).

unit-testing stub amazon-s3 amazon-web-services

16
推荐指数
1
解决办法
5406
查看次数

正则表达式匹配不在引号中的关键字

我如何能够查找不在字符串中的kewords.

例如,如果我有文字:

你好,这个文字就是一个例子.

bla bla bla"这个文字在一个字符串里面"

"随机字符串"更多文字bla bla bla"foo"

我希望能够匹配所有text不在里面的单词" ".在其他我想匹配:

在此输入图像描述

注意我不想匹配红色突出显示的文本,因为它在字符串中


可能的方法:

我一直在努力,这是我到目前为止:

(?s)((?<q>")|text)(?(q).*?"|)

请注意,正则表达式使用if语句:(?(谓词)true替换| ​​false替代)

所以正则表达式会读:

找到"或文字.如果你找到"然后继续选择,直到你找到"再次(.*?"),如果你找到文字,然后什么都不做......

当我运行该正则表达式时,我匹配整个字符串.我问这个问题是为了学习.我知道我可以删除所有字符串然后寻找我需要的东西.

c# regex parsing

16
推荐指数
2
解决办法
9701
查看次数

哪个C++标准头定义了SIZE_MAX?

我正在研究一个恰好SIZE_MAX在几个地方使用的现有C++代码库.我做了一些重构,现在SIZE_MAX没有在其中一个模块中定义.当Travis-CI尝试在Linux上构建项目时出现此问题.它在重构之前工作正常,但是跟踪包含哪些精确的头文件很困难.

为了在本地复制问题,我安装了一个带有默认gcc的Ubuntu VM,并且能够重现它.以下是相关来源:

#include <stddef.h>

int main()
{
    size_t a = SIZE_MAX;
}
Run Code Online (Sandbox Code Playgroud)

命令行很简单:

g++ a.cpp
Run Code Online (Sandbox Code Playgroud)

错误是:

a.cpp: In function ‘int main()’:
a.cpp:5:16: error: ‘SIZE_MAX’ was not declared in this scope
Run Code Online (Sandbox Code Playgroud)

系统信息:

$ uname -a
Linux quartz 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ gcc --version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Run Code Online (Sandbox Code Playgroud)

我曾尝试包括cstdint,stdint.h,limits.h,inttypes.h,stdio.h,stdlib.h,,可能有一些人,我想不出我需要哪些特定的头文件SIZE_MAX.

重要的是要注意我正在编写的程序编译正常SIZE_MAX …

c++ header size-t stdint

16
推荐指数
2
解决办法
1万
查看次数

确定是否安装.NET 3.5的最佳方法

我需要以编程方式确定是否安装了.NET 3.5.我觉得这很容易:

<% Response.Write(Environment.Version.ToString()); %>
Run Code Online (Sandbox Code Playgroud)

返回"2.0.50727.1434"所以没有这样的运气......

在我的研究中,我有一些相当模糊的注册表项,我可以看一下,但我不确定这是否是要走的路.有没有人有什么建议?

.net registry installer .net-3.5

15
推荐指数
1
解决办法
1万
查看次数

如何在GCC中进行优化的发布模式?

在GCC中进行全面优化的"发布模式"中需要构建哪些具体选项?如果有多个选项,请列出所有选项.谢谢.

c c++ gcc g++

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

如何为给定的int找到最接近的偶数?(给出11回报12)

那么如何创建一个函数来返回最接近9 9+ 1的函数给定的int,除以2 int时不留余数?

c c++ int

15
推荐指数
5
解决办法
1万
查看次数

有人可以解释如何在C编程中将元素追加到数组中吗?

如果我想将数字附加到初始化为int的数组中,我该怎么做?

int arr[10] = {0, 5, 3, 64};
arr[] += 5; //Is this it?, it's not working for me...
Run Code Online (Sandbox Code Playgroud)

我最后想要{0,5,3,64,5}.

我习惯使用Python,而在Python中有一个名为list.append的函数,它会自动为您添加一个元素到列表中.C中是否存在此类功能?

c arrays integer append

15
推荐指数
2
解决办法
9万
查看次数