我目前正在用C++ for Unix编写自己的ASE/RSA加密程序.我已经阅读了大约一个星期的文献,我已经开始围绕这一切,但我仍然有一些紧迫的问题:
1)根据我的理解,最基本形式的RSA密钥是所使用的两个素数(R)和指数的乘积的组合.对我来说很明显,以明文形式存储密钥会破坏加密任何东西的目的.因此,我可以以什么形式存储生成的公钥和私钥?询问用户密码并使用ASCII表对密钥的各个数字进行"简单"移位/替换?或者是否有其他标准我还没有遇到过?此外,当生成密钥时,R和相应的指数是否顺序存储?即## primeproduct #### exponent ##?在这种情况下,解密算法如何将密钥解析为两个单独的值?
2)鉴于我决定使用65537作为所有加密的公共指数,我将如何以编程方式生成私有指数?我得到了方程P*Q = 1mod(M),其中P和Q以及指数和M是Euler's Totient函数的结果.这只是产生随机数并测试它们对公众指数的相对素数直到你付出肮脏的问题吗?我知道你不能简单地从1开始增加直到找到这样的数字,因为任何人都可以简单地做同样的事情并自己获得你的私人指数.
3)当生成字符等价集时,我理解集合中使用的数字不能小于并且相对于P*Q的素数.同样,这是测试数字相对于P*Q的素数的问题.测试相对素数的速度是否与您正在使用的数字的大小无关?或者是必要的特殊算法?
提前感谢任何花时间阅读和回答的人,欢呼!
我有一个 bash 脚本,它应该调用存储在 GitHub 上的 Python 脚本并使用参数运行它:
#!/bin/bash +x
wget https://github.place.otherplace.com/myrepo/repo_folder/blob/Python/pythonScript.py
chmod +x pythonScript.py
python pythonScript.py
Run Code Online (Sandbox Code Playgroud)
我收到以下响应:HTTP 请求已发送,正在等待响应... 200 OK 长度:未指定 [text/html] 保存到:'DisputeSystem.py'
0K .......... .......... .......... ........ 795K=0.05s
2016-06-14 11:08:24 (795 KB/s) - ‘pythonScript.py’ saved [39657]
File "pythonScript.py", line 4
<!DOCTYPE html>
^
SyntaxError: invalid syntax
Build step 'Execute shell' marked build as failure
[BFA] Scanning build for known causes...
[BFA] No failure causes found
[BFA] Done. 0s
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)
我认为这也与 wget 拉取 HTML 标头有关,但我一直无法找到剥离它们的方法。任何帮助表示赞赏。
对于我的项目,我有一个IAM角色myRole.我有一个带有MySQL实例的RDS服务器.MySQL实例需要用户名和密码,但是我不希望通过命令行以明文形式传递它们,也不想将它们存储在某处以便以后检索.
我想做的是以某种方式使用IAM角色作为身份验证,以便能够执行备份等.
这可能吗?
所以这是我的情况:我有一个类foo驻留在foo.cpp中,头文件foo.h包含在我的main.cpp中.我需要能够在main.cpp中将foo对象声明为全局变量,以便main.cpp中的所有函数都可以使用它,而不必每次都传递对它的引用.问题是,foo的构造函数需要一个变量,直到main.cpp中的main函数中途才能从用户检索.我以为我可以这样做:
static foo myFoo;
Run Code Online (Sandbox Code Playgroud)
作为主函数之上的全局变量,然后在从用户检索必要的数据之后(让我们称之为"变量"),我可以调用:
myFoo = new foo(variable);
Run Code Online (Sandbox Code Playgroud)
我得到一个错误但是这个:
错误:没有匹配函数来调用'foo :: foo()'
引用该行 static foo myFoo;
所以它基本上是说我试图用一个带零参数的构造函数来声明一个foo实例,当没有参数时.
所以我的问题是:有没有办法将foo中的标签myFoo声明为全局变量,以便程序编译,然后实际上可以使用带有变量的构造函数实例化?
我知道我可以这样做:
string temp = "";
static foo myFoo(temp);
Run Code Online (Sandbox Code Playgroud)
在main()之上,然后在我能做的地方定义了一些函数
myFoo.setVar(variable);
Run Code Online (Sandbox Code Playgroud)
当我需要的时候.对我来说,这是非常难看的,并且需要包含函数setVar,除了绕过这个问题之外没有任何实际目的.思考?
这是一个有趣的.我正在编写AES加密算法,并设法让它进行准确的加密.当我尝试将结果写入文件时出现问题.我收到的文件输出不正确.十六进制值会被破坏,它通常是荒谬的(即使是加密标准).
我通过在将加密输出发送到文件之前对其进行采样来进行一些调试.我发现我在某处遇到了某种类型的溢出.当正确的十六进制值应该是9e时,我会得到ffffff9e.它只会对高于7F的十六进制值执行此操作,即"扩展"字符集中的字符未正确处理.这在我的项目中也发生在我的早期,然后问题是使用char [] []容器而不是unsigned char [] []容器.
我的代码使用字符串在用户界面和AES加密类之间传递加密数据.我猜测std :: strings不支持扩展字符集.所以我的问题是:有没有办法实例化无符号字符串,还是我必须找到一种方法来替换我对字符串的所有使用?
我有一个代表请求的类.我有一组非常具体的请求,例如"I-95","P-22"等,它们执行不同的功能并由控制器类调用.这样做的最佳方法是什么,以便人们可以轻松地在路上添加更多请求?
我现在有这样的事情:
class Requests:
def __init__(self):
self.types = [
'I-95',
'P-22',
...
]
def generate_request(self,type, Data):
# Here I would call the appropriate case for the type, e.g. P-22
Run Code Online (Sandbox Code Playgroud)
请求案例将在其自己的单独文件中,如下所示:
class P-22:
# Members
def __init__(self, Data):
# Set data members
def request(self):
# Submit request
Run Code Online (Sandbox Code Playgroud)
我可以在控制器中创建一个请求
f = Requests()
f.generate_request('RC75')
Run Code Online (Sandbox Code Playgroud)
我正在努力寻找尽可能干净且易于扩展的东西.谢谢!
c++ ×3
class ×2
encryption ×2
python ×2
amazon-iam ×1
bash ×1
cryptography ×1
html ×1
mysql ×1
string ×1
wget ×1