我使用上面的代码加密了一个字符串.
public String encrypt(String generatedKey)
{
try {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(generatedKey.getBytes("UTF-8"));
byte digest[] = md.digest();
return (new BASE64Encoder()).encode(digest);
}
catch (Exception e) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
同样,我需要一个代码来解密上面生成的代码.我怎样才能做到这一点?
是否可以使用python创建自定义加密程序?我知道大多数加密应用程序都使用类似河豚和AES的方法但是如果你想制作自己的,更安全的加密类型怎么办?
我将加密CLASSIFIED数据,我的数据必须使用最先进的加密保护.我使用AES加密数据,使用RSA加密密钥.我的RSA代码如下.请确认此代码是否安全:
static class Program
{
static void Main()
{
var csp = new RSACryptoServiceProvider(3072);
var privKey = csp.ExportParameters(true);
var pubKey = csp.ExportParameters(false);
string pubKeyString;
{
var sw = new System.IO.StringWriter();
var xs = new System.Xml.Serialization.XmlSerializer(typeof(RSAParameters));
xs.Serialize(sw, pubKey);
pubKeyString = sw.ToString();
}
{
//get a stream from the string
var sr = new System.IO.StringReader(pubKeyString);
//we need a deserializer
var xs = new System.Xml.Serialization.XmlSerializer(typeof(RSAParameters));
//get the object back from the stream
pubKey = (RSAParameters)xs.Deserialize(sr);
}
csp = new RSACryptoServiceProvider();
csp.ImportParameters(pubKey);
var plainTextData …Run Code Online (Sandbox Code Playgroud) 我必须用 Java 编写一个程序来比较 3 种不同的非对称密码算法。我想选择密钥大小和消息大小(将随机生成),并且我想显示每种算法使用相同维度的密钥加密相同文本所需的不同时间。
我想比较 RSA、DSA 和 ECIES。前两个不会造成任何问题,但最后一个我不知道该怎么办。
主要问题是:
Cipher在Java中创建一个使用的"ECIES",它似乎不存在?我已经制作了我的网络应用程序,并努力使这几乎失去了180天的时间.我的所有应用程序都是JAvascript.但我可以看到,许多聪明人仍然可以窃取我的密码.你能帮我么?如何以我的代码永远不会显示到Inspect元素和View Source的方式加密?有算法吗?
这是我的代码当我看到检查元素和查看源:
<!DOCTYPE html>
<html lang="en" class="app">
<head>
<meta charset="utf-8" />
<meta name="description" content="app, web app, responsive, admin dashboard, admin, flat, flat ui, ui kit, off screen nav" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<link rel="stylesheet" href="js/jplayer.flat.css" type="text/css" />
<link rel="stylesheet" href="css/app.v1.css" type="text/css" />
<link rel="stylesheet" href="css/load_bar.css" type="text/css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="js/load_bar.js"></script>
<script src="js/app.v1.js"></script>
<script src="js/app.plugin.js"></script>
<script type="text/javascript" src="js/jquery.jplayer.min.js"></script>
<script type="text/javascript" src="js/jplayer.playlist.min.js"></script>
<script type="text/javascript" src="js/music_list.js">
</script>
--------
--------
--------
<!--[if lt IE 9]> <script src="js/ie/html5shiv.js"></script> …Run Code Online (Sandbox Code Playgroud) 我正在与客户进行数据交换集成,他们发送给我的数据使用他们的C#encrypt方法加密(如下).
我的应用程序运行PHP 5.3,我需要一个等效的代码来解密他们发送的数据.我有PHP代码,但它不能正确解密客户端数据.
很明显,我在加密/解密方法,IV键或其他方面犯了一些错误.谁能发现错误?
谢谢.
C#代码(来自我的客户):
using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;
public class Program
{
public static void Main()
{
var text = "this is a plain string";
var enc = Program.Encrypt(text);
Console.WriteLine(enc);
Console.WriteLine(Program.Decrypt(enc));
}
public static string Encrypt(string clearText)
{
var EncryptionKey = "1234567890123456";
byte[] clearBytes = Encoding.Unicode.GetBytes(clearText);
using (Aes encryptor = Aes.Create())
{
byte[] IV = new byte[15];
var rand = new Random();
rand.NextBytes(IV);
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, IV);
encryptor.Key = pdb.GetBytes(32); …Run Code Online (Sandbox Code Playgroud) public function decrypt($str, $key){\n //AES, 256 ECB\n $data = rtrim(\n mcrypt_decrypt(\n MCRYPT_RIJNDAEL_256, \n $key, \n base64_decode($str), \n MCRYPT_MODE_ECB,\n mcrypt_create_iv(\n mcrypt_get_iv_size(\n MCRYPT_RIJNDAEL_256,\n MCRYPT_MODE_ECB\n ), \n MCRYPT_RAND\n )\n ), "\\0"\n );\n return $data;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n$str是来自ios应用程序加密的字符串,他使用的字符集是NSUTF8StringEncoding 并使用该方法AES-256-ECB-PKCS7Padding和base64输出。
加密前
\n\n$str->42z7t5nzwvbk14gbemc9
$键->gxssh2016
ios APP加密后
\n\n$str->D2k5t33l+HD3snFTU+gNYlCH/DQ37WO6I6nUYbGTDKc
注意:我使用AES在线工具解密该字符串可以得到正确的结果:42z7t5nzwvbk14gbemc9
但是,使用我的函数解密此 $str 输出:\n x\xef\xbf\xbdZ\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xc2\xae(t\xef\xbf\xbds\xda\x9e\xef\xbf\xbd<\xef\xbf\xbd^\xef\xbf\xbdq\xef\xbf\xbdP\xef\xbf\xbd\xef\xbf\xbd`
我怎样才能42z7t5nzwvbk14gbemc9在php中解密它?
所以我想尝试使用Ceasar Cipher char *,我写了一个简单的函数:
char * Encrypt(char * s, int k)
{
char * c = s;
for(int i = 0; i < strlen(s); i++)
c[i] += k;
return c;
}
Run Code Online (Sandbox Code Playgroud)
这似乎看起来应该有效,但事实并非如此.它在运行程序时抛出错误.
以下是我如何调用此函数的示例:
int main()
{
cout << Encrypt("hello", 2) << endl;
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在你说"为什么不只是使用string?"之前,答案是我在某个SDK上编写C++,在使用时会导致编译器错误string.好的但是,任何形式的帮助都将非常感谢,谢谢!
我需要将这些用 C# 开发的加密系统转换为 PHP。这些是输入数据。客户 ID、转换为字符串的 JSON 对象和私钥。
codigoCliente: 1002
数据:{"codigoCliente":1002,"codigoArticulo":"30-07483","cantidad":1}
claveSecretaServicio:RFlTfDIwMjBXZWJQYWdlX0V4dGVybmF
我需要得到这个哈希结果:WGHGEY830J3WeadO1o4NGNLYZ9lY7xvquol5igE+hLU=
这是 C# 中的调用:GetHash(modelo.CodigoCliente.ToString(), JsonSerializer.Serialize(modelo), “WGHGEY830J3WeadO1o4NGNLYZ9lY7xvquol5igE+hLU=”);
转换为 PHP 的 C# 函数是这些。
public static string GetHash(string codigoCliente, string datos, string claveSecretaServicio)
{
var claveSecretaBytes = System.Convert.FromBase64String(claveSecretaServicio);
var claveOperacion = Encrypt3DES(codigoCliente, claveSecretaBytes);
var firmaBytes = GetHMACSHA256(datos, claveOperacion);
return System.Convert.ToBase64String(firmaBytes);
}
private static byte[] Encrypt3DES(string codigoCliente, byte[] key)
{
var codigoClienteBytes = System.Text.Encoding.UTF8.GetBytes(codigoCliente);
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
byte[] SALT = new byte[8] { 0, 0, 0, …Run Code Online (Sandbox Code Playgroud) 我有使用 2048 位公钥/私钥加密的 GPG 文件,但我有一个大问题,我丢失了密钥。我知道解密的机会非常低:(。
是否有“蛮力”工具来解密 GPG 文件?我会让这个工具运行几天来试试运气。
gpg: encrypted with RSA key, ID E81B3FBCA9713B30
gpg: decryption failed: No secret key
# off=0 ctb=85 tag=1 hlen=3 plen=268
:pubkey enc packet: version 3, algo 1, keyid E81B3FBCA9713B30
data: [2048 bits]
# off=271 ctb=d2 tag=18 hlen=2 plen=0 partial new-ctb
:encrypted data packet:
length: unknown
mdc_method: 2
Run Code Online (Sandbox Code Playgroud)
谢谢,
encryption ×10
c# ×3
php ×3
aes ×2
cryptography ×2
java ×2
c++ ×1
char-pointer ×1
css ×1
gpgpu ×1
html ×1
ios ×1
javascript ×1
jquery ×1
python ×1
rsa ×1
security ×1
sha ×1
unix ×1