小编Ask*_*Ali的帖子

在IOS中实施PBEKeySpec加密

这是我的java代码.现在我想在Objective-C中实现相同的功能.

int dkLen = 16;
int rounds = 1000;
PBEKeySpec keySpec = new PBEKeySpec(hashKey.toCharArray(),salt.getBytes(), rounds, dkLen * 8);
SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
return factory.generateSecret(keySpec).getEncoded();
Run Code Online (Sandbox Code Playgroud)

这是我的iOS实现

- (void)getHashKey {
      NSString *hash_key=@"MY_HASHKEY";
      NSString *saltKey = @"MY_SALTKEY";

      int dkLen = 16;
      NSData *keyData = [hash_key dataUsingEncoding:NSUTF8StringEncoding];
      NSData *salt    = [saltKey dataUsingEncoding:NSUTF8StringEncoding];
      uint    rounds  = 1000;
      uint    keySize = kCCKeySizeAES128;

      NSMutableData *derivedKey = [NSMutableData dataWithLength:keySize];

      CCKeyDerivationPBKDF(kCCPBKDF2,               // algorithm
                           keyData.bytes,           // password
                           keyData.length,          // passwordLength
                           salt.bytes,              // salt
                           salt.length,             // saltLen
                           kCCPRFHmacAlgSHA1,       // PRF
                           rounds, …
Run Code Online (Sandbox Code Playgroud)

hash objective-c pbkdf2

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

我如何在 pubspec.yaml 中添加用户定义的变量以进行颤振?

基本上我需要将版本和我的本地依赖项 URL 分配为用户定义的变量,并在路径或我希望的任何地方分配相同的内容

像下面这样的例子

   mydependancyPath : D:\mylocalDependancy

   commonUtils:
   path:  mydependancyPath
Run Code Online (Sandbox Code Playgroud)

1.请让我知道如何实现上述目标

2.是否可以将另一个YAML文件导入pubspec.yaml

在Android中我可以实现如下

dagger_version=2.8

"com.google.dagger:dagger:${dagger_version}" 
Run Code Online (Sandbox Code Playgroud)

yaml dart flutter

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

使用Web API TransactionScope和SQL Server内存表问题

每当我通过Web API访问具有内存表的存储过程TransactionScope时,都会出现此错误:

当前事务无法提交,并且不能支持写入日志文件的操作。回滚事务。当前事务无法提交,并且不能支持写入日志文件的操作。回滚事务。当前事务无法提交,并且不能支持写入日志文件的操作。回滚事务。在批处理结束时检测到不可提交的事务。交易回滚

我试图直接在SQL Server Management Studio中执行相同的存储过程,并且工作正常。

另外,当我TransactionScope从Web API中删除时,它也可以正常工作。但是我想TransactionScope在Web API内使用

在存储过程中,我有以下内容:

SET NOCOUNT ON;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
BEGIN TRY
 SELECT ITEMID FROM SAMPLE_IN_MEMORY_TABLE
           ----
END TRY
BEGIN CATCH
--
END CATCH
Run Code Online (Sandbox Code Playgroud)

在Web API内部,按照以下方式使用存储过程

QueriesTableAdapter qa = new QueriesTableAdapter();

using (TransactionScope scope = new TransactionScope())
{
      qa.SpSampleInMemoeryAccess(g_OutParameter64);

      if (g_OutParameter64 > 0)
      {
          scope.Complete();
          Status = true;             
      }
      else
      {
          Status = false;
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

stored-functions asp.net-web-api2 in-memory-tables

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

在IOS中实施AES256加密

这是我的java代码.现在我想在Objective-C中实现相同的功能.

Cipher encryptCipher;
IvParameterSpec iv = new IvParameterSpec(key);
SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");
encryptCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
encryptCipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
byte[] encrypted = encryptCipher.doFinal(dataToEncrypt.getBytes());
Log.d("TAG", "encrypted string:"
        + Base64.encodeToString(encrypted, Base64.DEFAULT));
return Base64.encodeToString(encrypted, Base64.DEFAULT).trim();
Run Code Online (Sandbox Code Playgroud)

这是我的iOS实现

- (NSData *)AES256EncryptWithKey:(NSString*)key
{
    char keyPtr[kCCKeySizeAES256 + 1];
    bzero(keyPtr, sizeof(keyPtr));
    [key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];

    NSUInteger dataLength = [self length];

    size_t bufferSize           = dataLength + kCCBlockSizeAES128;
    void* buffer                = malloc(bufferSize);

    size_t numBytesEncrypted    = 0;
    CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt,
                                  kCCAlgorithmAES128,
                                  kCCOptionPKCS7Padding,
                                  keyPtr,
                                  kCCKeySizeAES256,
                                  NULL,
                                  [self bytes],
                                  dataLength,
                                  buffer, …
Run Code Online (Sandbox Code Playgroud)

iphone encryption aes nsdata commoncrypto

3
推荐指数
1
解决办法
6126
查看次数