【问题标题】:Encryption with Javascript Object Signing and Encryption (JOSE) with JWT in iOS programming?在 iOS 编程中使用 JWT 使用 Javascript 对象签名和加密 (JOSE) 进行加密?
【发布时间】:2016-09-16 07:06:31
【问题描述】:

我正在尝试将 Javascript Object Signing and Encryption (JOSE) jose 与我的 iOS 应用程序集成。

引用This Sample code : hongkongkiwi/ObjectiveC-JOSE..使用此尝试将我的输入参数作为加密格式发送到服务器。

如果有人集成了 JOSE,请提供流程。

目前我已经实现了:

   NSURLSessionDataTask *dataTask =[[self dataSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

    if (error) {
        completionHandler(nil,error);
        return ;
    }

    id responseObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

    NSLog(@"response object :%@",responseObject);
}

其实我找到了一个使用 JOSE 解码的 sn-p :

http://popdevelop.com/2013/12/decode-json-web-token-jwt-in-ios-objective-c/ 但没有找到任何用于编码的库。所以我怀疑是否可以在 iOS 上使用 JOSE 进行编码?

【问题讨论】:

  • 那么,您遇到了什么障碍吗?什么不起作用?
  • @Thilo 请找到我的更新..我现在有问题更新..

标签: ios objective-c encryption jose


【解决方案1】:

使用 JSON WEB TOKEN cocoa pods 示例解决了问题。

安装可可豆荚:

吊舱“JWT”

要对 JWT 进行编码和解码,请在 JWTBuilder 界面中使用流畅的样式

  • (JWTBuilder *)encodePayload:(NSDictionary *)payload;
  • (JWTBuilder *)encodeClaimsSet:(JWTClaimsSet *)claimsSet;
  • (JWTBuilder *)decodeMessage:(NSString *)message;

您可以像这样对任意负载进行编码:

 NSDictionary *payload = @{@"foo" : @"bar"};
 NSString *secret = @"your secret key";
 id<JWTAlgorithm> algorithm = [JWTAlgorithmFactory  algorithmByName:@"HS256"];

 [JWTBuilder encodePayload:payload].secret(@"secret").algorithm(algorithm).encode;

JWT 令牌将是这样的示例:

"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJVc2VySWQiOiI1NmY2YWUxYjYwZDc0MTBjZjRkOWU1YjMiLCJyZXF1ZXN0X3R5cGUIOiIxIn0.AFK3zGF5HvIEl2Qr0cNHmmS97zjpfolio"

"

您可以在此处检查编码和解码值:

https://jwt.io/#debugger

【讨论】:

  • 请注意,在您提到的问题中,您是“试图将我的输入参数以加密格式发送到服务器”。但是,答案中提供的代码演示了signing 有效负载,而不是对其进行加密。如果你想加密有效载荷,请查看JWE
猜你喜欢
  • 2018-10-17
  • 2016-09-14
  • 2018-11-20
  • 2015-05-29
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多