做卡拉ok项目时,逐字歌词同步需要很多高精度的lrc文件,目前国内有2大家:拥有专利的kugou和没有专利的qq音乐。二者各推出了一种逐字同步歌词文件: krc和qrc。krc有加密处理,直接打开的话只能看到乱码。

查找了很多资料,发现只有java版的半成品解密代码,而没有ios平台可用的。经过我半天努力,终于移植到ios平台。个人劳动成果,转载请注明来源。谢谢!本文提供ios平台的krc文件解密解决办法。

//

// KRC.h

// iOSKRCDecoder

//

// Created by zeng songgen on 12-8-2.

// Copyright (c) 2012年 zeng songgen. All rights reserved.

//

#import

@interface KRC : NSObject

{

//FileStream fs;

//头部4字节

NSMutableData * HeadBytes;

//异或加密内容

NSMutableData * EncodedBytes;

//解异或加密后ZIP数据

NSMutableData * ZipBytes;

//UNZIP后数据

NSData * UnzipBytes;

}

- (NSString *) Decode: (NSString * )filePath;

@end

//

// KRC.m

// iOSKRCDecoder

//

// Created by zeng songgen on 12-8-2.

// Copyright (c) 2012年 zeng songgen. All rights reserved.

//

#import "KRC.h"

#import "GTMNSData+zlib.h"

@implementation KRC

//异或加密 密钥

- (NSString *) Decode: (NSString * )filePath

{

NSString * EncKey = @"@Gaw^2tGQ61-ÎÒni";

//char EncKey[] = { '@', 'G', 'a', 'w', '^', '2', 't', 'G', 'Q', '6', '1', '-', 'Î', 'Ò', 'n', 'i' };

NSData * totalBytes = [[NSMutableData alloc] initWithContentsOfFile:filePath];

//HeadBytes = [[NSMutableData alloc] initWithData:[totalBytes subdataWithRange:NSMakeRange(0, 4)]];

EncodedBytes = [[NSMutableData alloc] initWithData:[totalBytes subdataWithRange:NSMakeRange(4, totalBytes.length - 4)]];

ZipBytes = [[NSMutableData alloc] initWithCapacity:EncodedBytes.length];

Byte * encodedBytes = EncodedBytes.mutableBytes;

int EncodedBytesLength = EncodedBytes.length;

for (int i = 0; i < EncodedBytesLength; i++)

{

int l = i % 16;

char c = [EncKey characterAtIndex:l];

Byte b = (Byte)((encodedBytes[i]) ^ c);

[ZipBytes appendBytes:&b length:1];

}

UnzipBytes = [NSData gtm_dataByInflatingData:ZipBytes];

NSString * s = [[[NSString alloc] initWithData:UnzipBytes encoding:NSUTF8StringEncoding] autorelease];

return s;

}

@end

php解析.krc,krc歌词文件解析相关推荐

  1. MP3制作之LRC歌词文件解析(附:源代码)

    LRC 歌词同步 一.准备工作   既然要制作歌词同步程序,首先要准备一首歌,我们就以"周杰伦-青花瓷"为例.首先要下载这首"青花瓷.mp3",保存为" ...

  2. java解析五元组_pcap文件解析,并且按照五元组分类

    [实例简介] pcap文件解析,并按照五元组分包,全部用java语言实现. [实例截图] [核心代码] PcapTestZZ ├── PcapTestZ │   ├── 111.206.37.1930 ...

  3. java怎么xml文件解析_Java对Xml文件解析

    JAVA 解析 XML 通常有两种方式,DOM 和 SAX. DOM 虽然是 W3C 的标准,提供了标准的解析方式,但它的解析效率一直不尽如人意,因为使用DOM解析XML时,解析器读入整个文档并构建一 ...

  4. awx文件解析_Android so(ELF)文件解析

    一.前言 so文件是啥?so文件是elf文件,elf文件后缀名是.so,所以也被chang常称之为so文件,elf文件是linux底下二进制文件,可以理解为windows下的PE文件,在Android ...

  5. java 解析修改dex_Android dex文件解析

    1. 关于Android dex文件 dex文件作为Android APK的组成部分,其主要是Android的Java代码经过编译生成class文件,再经过dx命令生成的.这里面包括了APK的源码,反 ...

  6. 哪些服务器曾被发现文件解析漏洞,常见的文件解析漏洞总结

    常见的文件解析漏洞总结 iis解析漏洞 解析漏洞主要是说一些特殊文件被iis,apache,nginx等web容器在特殊情况下被解释成脚本文件格式 ==iis5.x/6.0解析漏洞:== 1,目录解析 ...

  7. SAXReader解析器--xml字符串文件解析

    输入为xml格式字符串 public static void main(String[] args) throws DocumentException {String xml="<?x ...

  8. Thttpd源程序解析9 thttpd.c文件解析

    前面说过Thttpd.c这个文件是整个Thttpd的主要的控制部分下面来将一下Thttpd.c文件中的主要函数以及这些函数的功能. (1)static void handle_term( int si ...

  9. 使用js解析歌词文件(lrc格式歌词)

    首发地址:https://www.hsmus.top/202101235.html 像音乐播放器一样,可以把歌词文件解析为方便使用的对象 效果如下: 代码如下: 用法: /***** 用法 ***** ...

  10. elf文件格式_Android so(ELF) 文件解析

    Android so(ELF) 文件解析 Android so(ELF) 文件解析 前言 生成 so 文件 相关工具 objdump readelf 整体结构图 头部结构 段表结构 字符串表结构 程序 ...

最新文章

  1. 阿里最强热修复:Sophix 超高速集成与踩坑
  2. 从零开始入门 K8s | Kubernetes API 编程利器:Operator 和 Operator Framework
  3. Java设计模式之结构型:外观模式
  4. mysql中的get_lock锁机制解析
  5. apache将请求转发到到tomcat应用
  6. eureka注册中心搭建与使用
  7. xp虚拟服务器设置,VMWare的XP虚拟机网络设置
  8. 【C++】map/multimap容器
  9. 关于此应用无法在你的电脑上运行的解决方案
  10. oracle数据库中的回收站,Oracle回收站的清理方法
  11. IMUGPS融合定位::IMU姿态解算
  12. ecshop4.0php,ECSHOP安装教程【ECSHOP4.0安装教程】图解ECSHOP4.0安装教程流程和步骤-ECSHOP教程网...
  13. 世界顶级企业的数据中台实践剖析
  14. U盘文件如何恢复?u盘还原,必学的4招(2023已更新)
  15. 斯坦福大学的低码率音频编码博士论文
  16. 智能网联先导区道路交叉口车路协同系统设计
  17. Oracle数据库CPU占用过高
  18. 今日芯声 | 嘘!你与谷歌语音助手的对话,可能已经泄露……
  19. java中级工程师面试
  20. Bug管理的经验和实践

热门文章

  1. 基于中医药知识图谱智能问答(一)
  2. mpvue小程序:网易严选后端 mpvue-shop-node
  3. 计算机专业毕设设计选题(详细)
  4. 【Android】NanoHttpd学习(一)
  5. SVM-支持向量机算法概述
  6. Buck电路基础知识
  7. 小米笔记本pro充电测试软件,一款给人心理落差较大的笔记本--小米笔记本Pro测评...
  8. 基于 Django框架的电子海图服务器设计
  9. QT Icon设置异常
  10. mathcad15安装方法(解决了认证错误问题)