iPhone и кодирование HMAC-SHA-1

1110 Возможно, это не то, что вы ищете. Но это может помочь. Поскольку вы не указали URL, который хотите очистить, я просто привел пример веб-сайта.

import urllib.request
from urllib.request import urlopen
from bs4 import BeautifulSoup

url = 'http://dnedesign.us.to/tables/'
page = urllib.request.urlopen(url)
soup = BeautifulSoup(page, "html.parser")

status = []
for div in soup.find_all('div', attrs={'class':'mobile-menu-anchor fixed-primary-menu'}):
    print (''.join(div['id']))

Вы можете изменить значение в url на фактический URL-адрес, имя class в коде с фактическим именем класса и изменить id на data-fmid. Или, если вы хотите получить имя class и id в каждом div, вы можете использовать это loop:

for div in soup.find_all('div'):
    try:
        print ('id : ' + ''.join(div['id']))
        print ('class : ' + ' '.join(div['class']))
        print()
    except:
        pass
6
задан RRUZ 2 March 2010 в 15:16
поделиться

5 ответов

Если вы звоните в веб-сервис Amazon, тоже посмотрите цены или информацию о продукте, ваш ключ веб-сервиса Amazon будет отключен и ваше приложение перестанет работать.

Посмотрите на условия обслуживания веб-сервисов Amazon, использование мобильных клиентов строго запрещено:

https://affiliate-program.amazon.com/gp/advertising/api /detail/agreement.html

i Я выяснил это нелегко, когда в моем собственном приложении мой ключ AWS был отключен в производственном приложении. Я прочитал TOS, но на самом деле его там не было, как вы можете видеть по ссылке выше на некоторые другие неясные детали использования. Вы не думаете, что партнерская программа будет иметь какое-либо отношение к API, но это так.

Вы можете найти подробную информацию о других приложениях, заблокированных в этой статье TechCrunch:

http: //www.techcrunch.

5
ответ дан 8 December 2019 в 02:22
поделиться

Посмотрите на CocoaCryptoHashing для кодировки SHA1

0
ответ дан 8 December 2019 в 02:22
поделиться

Я опубликовал одно решение для этого здесь , которое возвращает данные в кодировке Base64, которые запрашивает AWS.

0
ответ дан 8 December 2019 в 02:22
поделиться

Я потратил около 4 часов на поиски в Google способов вычислить неключевой SHA1 на iPhone, который соответствовал бы результатам функции sha1 () в php. Вот результат:

    #import <CommonCrypto/CommonDigest.h>

    NSString *hashkey = <your data here>;
// PHP uses ASCII encoding, not UTF
const char *s = [hashkey cStringUsingEncoding:NSASCIIStringEncoding];
NSData *keyData = [NSData dataWithBytes:s length:strlen(s)];

// This is the destination
uint8_t digest[CC_SHA1_DIGEST_LENGTH] = {0};
// This one function does an unkeyed SHA1 hash of your hash data
CC_SHA1(keyData.bytes, keyData.length, digest);

// Now convert to NSData structure to make it usable again
NSData *out = [NSData dataWithBytes:digest length:CC_SHA1_DIGEST_LENGTH];
// description converts to hex but puts <> around it and spaces every 4 bytes
NSString *hash = [out description];
hash = [hash stringByReplacingOccurrencesOfString:@" " withString:@""];
hash = [hash stringByReplacingOccurrencesOfString:@"<" withString:@""];
hash = [hash stringByReplacingOccurrencesOfString:@">" withString:@""];
// hash is now a string with just the 40char hash value in it

Надеюсь, это поможет другим, кто борется с SHA1 на iPhone

33
ответ дан 8 December 2019 в 02:22
поделиться
// This is my code used in my Twitter connection, and working well for me.
// KeithF's code was a big help!
//
// This is a category added to NSData.

@implementation NSData (EOUtil)
- (NSData*)dataByHmacSHA1EncryptingWithKey:(NSData*)key
{   
    void* buffer = malloc(CC_SHA1_DIGEST_LENGTH);
    CCHmac(kCCHmacAlgSHA1, [key bytes], [key length], [self bytes], [self length], buffer);
    return [NSData dataWithBytesNoCopy:buffer length:CC_SHA1_DIGEST_LENGTH freeWhenDone:YES];
}
@end
2
ответ дан 8 December 2019 в 02:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: