JNIEXPORT jbyteArray JNICALL
Java_com_nodepp_smartnode_utils_Utils_encrypt(JNIEnv *env, jobject instance, jbyteArray data_,jbyteArray key_) {
// LOGD("--------_encrypt--------------");
char *data = (char *) (*env)->GetByteArrayElements(env, data_, NULL);//string转char*
char *key = (char *) (*env)->GetByteArrayElements(env, key_, NULL);
int in_len = (*env)->GetArrayLength(env, data_); // byte数组的长度
int out_len = in_len+32;
char *data_out = (char *)malloc(out_len* sizeof(char));
int encryp_code = xxtea_encrypt(data, in_len, key, data_out, &out_len);
jbyteArray result = (*env)->NewByteArray(env, out_len);
//char*转java的byte[]
(*env)->SetByteArrayRegion(env, result, 0, out_len, (jbyte *) data_out);
(*env)->ReleaseByteArrayElements(env, data_, data, 0);
free(data_out);//记得释放内存
return result;
}
JNI java中String,byte[]与c中char*转换
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。