我想将用户名和密码发布到服务器.我想将此用户名和密码转换为Base64编码.因此,将为Authorization字段添加此编码字符串.
是否有任何API可用于在iOS中进行Base64编码,或者我们自己编写?
首先,我需要说我检查了所有相关的stackoverflow问题.还检查了答案中的链接,但没有任何可用的解决方案.所以请不要以为我在这里直接问你这个问题.
这是我的PHP脚本,我与这个脚本无关(因为我无法更改脚本).
function encrypt($message,$secretKey) {
return base64_encode(
mcrypt_encrypt(
MCRYPT_RIJNDAEL_256,
$secretKey,
$message,
MCRYPT_MODE_ECB
)
);
}
Run Code Online (Sandbox Code Playgroud)
我无法在目标c中解密它.我已经使用了很多类别,如Cocoa/Cocoa Touch等强加密,我也遵循这个问题如何在iphone-sdk上进行base64编码?
请帮我.我非常迫切需要它.提前致谢.
这是我用于解密的目标C代码(在cocoa-aes类别NSData + AES.h中找到)
- (NSData *)AESDecryptWithPassphrase:(NSString *)pass
{
NSMutableData *ret = [NSMutableData dataWithCapacity:[self length]];
unsigned long rk[RKLENGTH(KEYBITS)];
unsigned char key[KEYLENGTH(KEYBITS)];
const char *password = [pass UTF8String];
for (int i = 0; i < sizeof(key); i++)
key[i] = password != 0 ? *password++ : 0;
int nrounds = rijndaelSetupDecrypt(rk, key, KEYBITS);
unsigned char *srcBytes = (unsigned char *)[self …Run Code Online (Sandbox Code Playgroud) 我正在开发iOS和Ruby on Rails应用程序,需要将从iOS应用程序加密的数据传输到Ruby on Rails应用程序.我的挑战是如何以我可以在Rails端解码的方式对Objective-C中的数据进行编码.我在这个SO问题中使用示例作为加密数据的方法,示例代码显示了加密数据的样子:
printf("%s\n", [[plain description] UTF8String]);
Run Code Online (Sandbox Code Playgroud)
它创建的输出看起来像:
<3fe47b63 bd9a84ab 30dfb1a4 e409b60f>
我的挑战是我需要找到一种方法来通过线路连接到Rails应用程序,我可以解码以便与OpenSSL代码一起使用,例如:
def decrypt(data)
cipher = OpenSSL::Cipher::Cipher.new('aes-256-cbc')
cipher.decrypt
cipher.key = cipher_key
cipher.iv = cipher_iv
decrypted_data = cipher.update(data)
decrypted_data << cipher.final
end
Run Code Online (Sandbox Code Playgroud)
我认为Base64编码可能是最好的方法,因为这些数据最终会出现在JSON请求的HTTP头中.似乎我可以使用Base64.decode64来解码Ruby端的数据并将其作为要解密的数据传递,但是我希望有人可以指导我这是否真的是最好的方法,而且无论如何编码,如何将指针转换为NSData对象,如下所示:
NSData *cipher = [plain AES256EncryptWithKey:key];
Run Code Online (Sandbox Code Playgroud)
进入该编码值,以获得它到Rails应用程序.谢谢!
我已经在应用程序商店中上传了一个应用程序.我正在为此实现AdColony添加.在我的应用程序ARC中禁用然后根据文档中的说明(通过向项目添加"-fobjc-arc"为AdColony启用ARC)我在Build Settings选项卡下设置其他Linker Flags)我试图启用ARC.But我收到链接器错误"没有这样的文件或目录:' - fobjc-arc".
此外,在Adcolony实施指南的第5步中,我们必须编写"-ObjC"或"-force_load PATH/TO/LIBRARY/libAdColony.a"来运行其他链接器标志中的代码.
已经禁用ARC的人需要同时使用上述过程.我尝试了所有不同的方式,但仍然卡住了.
控制台输出:
"2013-09-21 15:02:45.689] [1812:1d603] ADCOLONY 2.0.1 [info] AdColony库版本:2.0.1.33制作2013-09-21 15:02:46.139] [1812:21707] + [ NSData adc_dataWithWeaklyEncryptedBase64EncodedString:]:无法识别的选择器发送到类0x25db7e0".
请为我建议一些方法.
编辑:
上次我使用的是旧API.但是现在我已经下载了8月下旬更新的新框架.应用程序没有崩溃使用-fobjc-arc.But仍然没有显示添加.
控制台输出:
2013-09-21 17:08:39.614 AfricanMoviesNewsiPad [2839:1d603] ADCOLONY 2.2.2 [info] AdColony库版本:2.2.2制作2013-09-21 17:08:40.025 AfricanMoviesNewsiPad [2839:21807] + [NSData adc_dataWithWeaklyEncryptedBase64EncodedString:]:无法识别的选择器发送到类0x29fe7e0
我还检查了所有必需的框架被添加.没有任何线索.
我正在使用Web服务来检索数据.但是我无法将数据转换为图像.我正在从服务器接收数据,但是当我转换为图像时,它显示为null.
我正在尝试从我的数据库中显示图像.
这部分很好用.我将图像保存在DB中,如下所示:
UIImage *resizedImg = [Generics scaleImage:self.photo.image toResolution:self.photo.frame.size.width and:self.photo.frame.size.height];
NSData *imgData = UIImageJPEGRepresentation(resizedImg, 0.9);
NSString *stringDataImage = [NSString stringWithFormat:@"%@",imgData];
[dict setObject:stringDataImage for key@"image"];
// POST Request to save the image in DB ...
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试加载图像并将其设置为我时,UIImageView我这样做:
NSData *data = [[[MyUser sharedUser] picture] dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithData:data]];
Run Code Online (Sandbox Code Playgroud)
要么
NSData *data = [[[MyUser sharedUser] picture] dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
self.imageView.image = [UIImage withData:data];
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
data不等于imgData,我认为这是编码,但我可以找到好的编码.并[UIImage withData:data]返回零;
你能帮助我吗?
编辑:
转换并保存
UIImage *resizedImg = [Generics scaleImage:self.photo.image toResolution:self.photo.frame.size.width …Run Code Online (Sandbox Code Playgroud) 我们如何在Objective C中获取唯一ID.我想为会话创建一个唯一的ID,然后在每次服务器调用时生成一个ID.每次此ID都应该是唯一的.
我尝试使用CFUUID类,它给了我们一个巨大的唯一ID(4FE9D00C-531E-45E8-B10E-11968ACC36E9).我想要一个更小尺寸的唯一ID.
任何线索?
我有一个NSData与Base 64的图像解码.我想在UIImage中转换这些数据,但....
NSData * data = [[NSData alloc] initWithContentsOfFile:@"/Users/.../Library/Caches/images/david.txt"];
UIImage * i = [[UIImage alloc] initWithData:data];
NSLog(@"%@",i);
NSData *datai = UIImagePNGRepresentation(i);
UIImage * i2 = [[UIImage alloc] initWithData:datai];
imagen = [[UIImageView alloc] initWithImage:i2];
[imagen setFrame:CGRectMake(0, 0, 320, 480)];
Run Code Online (Sandbox Code Playgroud)
imagen - >变量
我知道数据中的内容是正确的,但在我的控制台中:
[Session started at 2011-08-24 20:44:25 +0200.]
2011-08-24 20:44:30.579 P[50194:207] (null)
Run Code Online (Sandbox Code Playgroud)
我用这个Objective C代码解码了:
- (NSData *)base64DataFromString: (NSString *)string
{
unsigned long ixtext, lentext;
unsigned char ch, inbuf[3], outbuf[4];
short i, ixinbuf;
Boolean flignore, flendtext = false;
const unsigned char …Run Code Online (Sandbox Code Playgroud) ios ×6
objective-c ×6
iphone ×5
nsdata ×2
uiimage ×2
aes ×1
base64 ×1
cocoa-touch ×1
encryption ×1
ipad ×1
php ×1
ruby ×1
syntax-error ×1
uiimageview ×1
xcode ×1