这是我的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) 基本上我需要将版本和我的本地依赖项 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) 每当我通过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) 这是我的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) aes ×1
commoncrypto ×1
dart ×1
encryption ×1
flutter ×1
hash ×1
iphone ×1
nsdata ×1
objective-c ×1
pbkdf2 ×1
yaml ×1