php解析.krc,krc歌词文件解析
做卡拉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歌词文件解析相关推荐
- MP3制作之LRC歌词文件解析(附:源代码)
LRC 歌词同步 一.准备工作 既然要制作歌词同步程序,首先要准备一首歌,我们就以"周杰伦-青花瓷"为例.首先要下载这首"青花瓷.mp3",保存为" ...
- java解析五元组_pcap文件解析,并且按照五元组分类
[实例简介] pcap文件解析,并按照五元组分包,全部用java语言实现. [实例截图] [核心代码] PcapTestZZ ├── PcapTestZ │ ├── 111.206.37.1930 ...
- java怎么xml文件解析_Java对Xml文件解析
JAVA 解析 XML 通常有两种方式,DOM 和 SAX. DOM 虽然是 W3C 的标准,提供了标准的解析方式,但它的解析效率一直不尽如人意,因为使用DOM解析XML时,解析器读入整个文档并构建一 ...
- awx文件解析_Android so(ELF)文件解析
一.前言 so文件是啥?so文件是elf文件,elf文件后缀名是.so,所以也被chang常称之为so文件,elf文件是linux底下二进制文件,可以理解为windows下的PE文件,在Android ...
- java 解析修改dex_Android dex文件解析
1. 关于Android dex文件 dex文件作为Android APK的组成部分,其主要是Android的Java代码经过编译生成class文件,再经过dx命令生成的.这里面包括了APK的源码,反 ...
- 哪些服务器曾被发现文件解析漏洞,常见的文件解析漏洞总结
常见的文件解析漏洞总结 iis解析漏洞 解析漏洞主要是说一些特殊文件被iis,apache,nginx等web容器在特殊情况下被解释成脚本文件格式 ==iis5.x/6.0解析漏洞:== 1,目录解析 ...
- SAXReader解析器--xml字符串文件解析
输入为xml格式字符串 public static void main(String[] args) throws DocumentException {String xml="<?x ...
- Thttpd源程序解析9 thttpd.c文件解析
前面说过Thttpd.c这个文件是整个Thttpd的主要的控制部分下面来将一下Thttpd.c文件中的主要函数以及这些函数的功能. (1)static void handle_term( int si ...
- 使用js解析歌词文件(lrc格式歌词)
首发地址:https://www.hsmus.top/202101235.html 像音乐播放器一样,可以把歌词文件解析为方便使用的对象 效果如下: 代码如下: 用法: /***** 用法 ***** ...
- elf文件格式_Android so(ELF) 文件解析
Android so(ELF) 文件解析 Android so(ELF) 文件解析 前言 生成 so 文件 相关工具 objdump readelf 整体结构图 头部结构 段表结构 字符串表结构 程序 ...
最新文章
- 阿里最强热修复:Sophix 超高速集成与踩坑
- 从零开始入门 K8s | Kubernetes API 编程利器:Operator 和 Operator Framework
- Java设计模式之结构型:外观模式
- mysql中的get_lock锁机制解析
- apache将请求转发到到tomcat应用
- eureka注册中心搭建与使用
- xp虚拟服务器设置,VMWare的XP虚拟机网络设置
- 【C++】map/multimap容器
- 关于此应用无法在你的电脑上运行的解决方案
- oracle数据库中的回收站,Oracle回收站的清理方法
- IMUGPS融合定位::IMU姿态解算
- ecshop4.0php,ECSHOP安装教程【ECSHOP4.0安装教程】图解ECSHOP4.0安装教程流程和步骤-ECSHOP教程网...
- 世界顶级企业的数据中台实践剖析
- U盘文件如何恢复?u盘还原,必学的4招(2023已更新)
- 斯坦福大学的低码率音频编码博士论文
- 智能网联先导区道路交叉口车路协同系统设计
- Oracle数据库CPU占用过高
- 今日芯声 | 嘘!你与谷歌语音助手的对话,可能已经泄露……
- java中级工程师面试
- Bug管理的经验和实践