Flickrの短縮URLを生成する方法(Base 58によるエンコード)

Flickr上の画像の短縮URLは、以下の形式となっており、{base58-photo-id}の部分には画像のphoto_idをBase 58でエンコードした値を設定します。
http://flic.kr/p/{base58-photo-id}

このFlickrのphoto_idをBase 58でエンコードする処理をObjective-Cjavascriptで実装してみました。
以下がそれぞれの言語での実装です。

Objective-C

- (NSString *)base58EncodedStringFrom:(long long)photoId {
    NSMutableString *encodedStr = [NSMutableString string];
    long long number;
    
    if(photoId) {
        number = photoId;
    } else {
        return nil;
    }
    
    // Base62の[0-9a-zA-Z]から" 0, O, I, l"を除いた58文字にphoto_idを変換する
    NSString *base58Characters = @"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ";
    
    NSUInteger baseCount = [base58Characters length];
    
    while(number > 0) {
        long long mod = number % baseCount;
        
        unichar ch = [base58Characters characterAtIndex:mod];
        NSString *str = [NSString stringWithCharacters:&ch length:1];
        [encodedStr insertString:str atIndex:0];
        
        number = number / baseCount;
    }
    
    return encodedStr;
}

javascript

function base58EncodedStringFromPhotoId(photo_id) 
{
    var num = photo_id;
    var base58Characters = '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ';
    var baseCount = base58Characters.length;
    var encodedStr = "";

    while(num>0)
    {
        var mod     = num % baseCount;
        encodedStr  = base58Characters.charAt(mod) + encodedStr;
        var div     = num / baseCount;
        num         = Math.floor(div);
    }
    
    return encodedStr;
}