相关疑难解决方法(0)

如何在swift语言中使用CC_MD5方法.

在objective-c中,我们可以通过以下代码用md5加密字符串

const char *cStr = [someString UTF8String];
unsigned char result[16];
CC_MD5( cStr, strlen(cStr), result );
md5String = [NSString stringWithFormat:
        @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
        result[0], result[1], result[2], result[3],
        result[4], result[5], result[6], result[7],
        result[8], result[9], result[10], result[11],
        result[12], result[13], result[14], result[15]
        ];
Run Code Online (Sandbox Code Playgroud)

但是现在CC_MD5在swift中不起作用.如何处理这个问题.

md5 swift

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

AES加密和解密

我通过swift编写应用程序,我需要AES加密和解密功能,我从另一个.Net解决方案接收加密数据,但我找不到要做的事情.

这是我的.net加密:

 public static byte[] AES_Encrypt(byte[] bytesToBeEncrypted, byte[] passwordBytes)
    {
        byte[] encryptedBytes = null;

        byte[] saltBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };

        using (MemoryStream ms = new MemoryStream())
        {
            using (RijndaelManaged AES = new RijndaelManaged())
            {
                AES.KeySize = 256;
                AES.BlockSize = 128;

                var key = new Rfc2898DeriveBytes(passwordBytes, saltBytes, 1000);
                AES.Key = key.GetBytes(AES.KeySize / 8);
                AES.IV = key.GetBytes(AES.BlockSize / 8);

                AES.Mode = CipherMode.CBC;

                using (var cs = new CryptoStream(ms, AES.CreateEncryptor(), CryptoStreamMode.Write))
                {
                    cs.Write(bytesToBeEncrypted, 0, …
Run Code Online (Sandbox Code Playgroud)

encryption aes ios swift cryptoswift

29
推荐指数
8
解决办法
8万
查看次数

在swift中实现HMAC和SHA1加密

我对Swift相对较新,而且我使用HMAC和SHA1进行加密.我找到了以下答案/sf/answers/1708806571/但我无法弄清楚如何正确实现这一点.任何帮助都会很棒.

ios swift xcode6

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

需要像Java一样在Objective C中生成HMAC SHA256哈希

我需要使用HMAC SHA256生成哈希.我在Java中使用以下代码.我需要Objective-C中的等效代码.

javax.crypto.Mac mac = javax.crypto.Mac.getInstance(type);
javax.crypto.spec.SecretKeySpec secret = new javax.crypto.spec.SecretKeySpec(key.getBytes(), type);
mac.init(secret);
byte[] digest = mac.doFinal(value.getBytes());      
StringBuilder sb = new StringBuilder(digest.length * 2);
String s="";
for (byte b: digest) {
    s = Integer.toHexString(b);
    if (s.length() == 1) {
        sb.append('0');
    }
    sb.append(s);
}
return sb.toString();
Run Code Online (Sandbox Code Playgroud)

键= YARJSuwP5Oo6/r47LczzWjUx/T8ioAJpUK2YfdI/ZshlTUP8q4ujEVjC0seEUAAtS6YEE1Veghz+IDbNQb+2KQ==

价值=

id=456|time=19:10|nonce=8

输出=

4effffffd8ffffffce7cffffffc4ffffffc71b2f72ffffffdc21ffffffa1ffffffe0ffffffe62d32550b0771296bffffff9c1159ffffffdeffffff8675ffffff9928654c
Run Code Online (Sandbox Code Playgroud)

我有这个Objective-C功能:

  //Hash method Definition
    - (NSString *)getHashEncription:(NSString *)key andData:(NSString *)data{

        NSLog(@"Secret Key %@ And Data %@", key, data);

        const char *cKey  = [key cStringUsingEncoding:NSASCIIStringEncoding];
        const char *cData = [data …
Run Code Online (Sandbox Code Playgroud)

java hash objective-c hmac

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

在 Swift 中加密密码的最佳方法是什么?

我正在构建一个接收登录凭据(usernamepassword)的应用程序。我想在将数据发送到服务器之前进行加密。如果有人能提供一些有关 Swift 中密码加密的最常见方法或最佳实践的见解,我将不胜感激。

encryption ios swift

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

如何快速进行HMAC-SHA1

我基本上是在尝试使用String并在php中执行以下操作:

    $signature= base64_encode(hash_hmac('sha1', $data, $secretKey, true));
Run Code Online (Sandbox Code Playgroud)

但是,在Swift中进行操作 ...我看到很多关于其他人试图使用CommonCrypto进行操作的帖子,但是该模块似乎没有安装。

所以确实有3个问题:

  1. CommonCrypto是执行此操作的正确方法吗?
  2. 如果是这样,如何添加框架?
  3. 如果不是CommonCrypto最好的方法,那是什么?

我当前的代码如下所示:

    var authString:String = "PUT\nTEST=BLAH\nTEST2=BLAHBLAHBLAH"
    let hmacResult:String = authString.sha1()

    ...

    extension String {
        func sha1() -> String {
          //Do Something...
        }
    }
Run Code Online (Sandbox Code Playgroud)

swift

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

HMAC SHA512在Swift 3.1中使用CommonCrypto

我正在尝试加密数据以发送到API.

API要求将数据作为hmac_sha512加密哈希发送.

我已经找到了各种各样的例子,说明它可能是如何为sha1其他人(而不是sha512)以及旧版本的Swift完成的.

我尝试过的所有例子都没有 swift 3.1

任何正确方向的帮助将不胜感激.

编辑:

在PHP中,我使用以下方法成功发送:

    $sign = hash_hmac('sha512', $post_data, $this->secret);
Run Code Online (Sandbox Code Playgroud)

编辑2:

did add briding header,我不知道下一步该做什么!由于之后的代码示例不适用于swift 3.1 :(

编辑3:

解决了!猜猜看,我正在错误地创建新的标题!:(

PS我试图避免使用CryptoSwift,专注于CommonCrypto.

下面给出的答案是不正确的,因为它不允许hmac获得加密密钥.我做了研究,终于搞定了.这篇文章包含了hmac的工作示例项目:https://github.com/nabtron/hmacTest

xcode hmac sha512 commoncrypto swift

0
推荐指数
1
解决办法
2746
查看次数

标签 统计

swift ×6

ios ×3

encryption ×2

hmac ×2

aes ×1

commoncrypto ×1

cryptoswift ×1

hash ×1

java ×1

md5 ×1

objective-c ×1

sha512 ×1

xcode ×1

xcode6 ×1